Razor页面中的程序处理方法

OnGet 和 OnGetAsync是同样的处理程序,因此不能共存,否则会报错。

视图数据 ViewData

视图数据是从页面模型向内容页面传递数据的容器。视图数据是以字符串为键的对象字典。

public class IndexModel : PageModel
{ public void OnGet()
{
ViewData["MyNumber"] = 42;
ViewData["MyString"] = "Hello World";
ViewData["MyComplexObject"] = new Book {
Title = "Sum Of All Fears",
Author = new Author { Name = "Tom Clancy" },
Price = 5.99m
};
}
}

视图数据字典自动传给内容页面,在页面中使用引用对应的键即可。

@page
@model IndexModel
@{
}
<h2>@ViewData["MyString"]</h2>
<p>The answer to everything is @ViewData["MyNumber"]</p>

对于非字符类型的值,需要在内容页面中转换为正确的类型。

@page
@model IndexModel
@{
var book = (Book)ViewData["MyConplexObject"];
} <h2>@book.Title</h2>
<p>@book.Author.Name</p>
<p>@book.Price</p>

视图数据ViewData的属性

从ASP.NET Core 2.1版本开始引入ViewData属性,属性会自动添加到ViewData字典中。

public class IndexModel : PageModel
{
[ViewData]
public string Message { get; set; } public void OnGet()
{
Message = "Hello World";
}
}

在内容页面中可以通过Model的属性或ViewData字典两种方式获取Message的值。

@page
@model IndexModel
@{
} <h2>@ViewData["Message"]</h2>
<h2>@Model.Message</h2>

Razor页面中的ViewBag

ViewBag 是ViewData的一个包装器,提供方位ViewData数据的一个替代方法。在页面模型中故意设计的不包含ViewBag属性,但可以使用ViewBag去获取ViewData对象:

@page
@model IndexModel
@{
ViewBag.Title = "My Home Page";
}

可通过ViewData 或者 ViewBag 读取数据:

<title>@ViewBag.Title</title>
<title>@ViewData["Title"]</title>

Razor页面中的动作结果

Action Results 通常是处理方法的返回类型,她负责生成response及适当的状态码。Action Results 实现 Microsoft.AspNetCore.Mvc.ActionResult 类 或 Microsoft.AspNetCore.Mvc.IActionResult 接口。ASP.NET Core 包含超过30个 ActionResult 类以满足各样的需求。

页面模型 PageModel的更多相关文章

  1. 移动设备和SharePoint 2013 - 第2部分:设备管道和SharePoint页面模型

    博客地址:http://blog.csdn.net/foxdave 原文地址 在该系列文章中,作者展示了SharePoint 2013最显著的新功能概观--对移动设备的支持. 该系列文章: 移动设备和 ...

  2. Web Pages(单页面模型)

    .NET 是一套框架,用来个HTML.JS.CSS和服务器端脚本构建网页和网站. 可以有三种开发模式:Web Pages(单页面模型).MVC(模型视图控制器).Web Forms(事件驱动模型) W ...

  3. Webdriver的设计模式:Page Object(页面模型)

    设计思想:面向对象,将单个页面所有可能用到元素封装到一个page类中,并提供一些常用的方法,其属性就代表页面元素,普通方法代表对元素所做的操作 以博客园的登录页面为例: import org.open ...

  4. ASP.NET Core Razor页面禁用防伪令牌验证

    在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证. Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的.数据驱动的网站: ...

  5. [转] 微信小程序页面间通信的5种方式

    微信小程序页面间通的5种方式 PageModel(页面模型)对小程序而言是很重要的一个概念,从app.json中也可以看到,小程序就是由一个个页面组成的. 如上图,这是一个常见结构的小程序:首页是一个 ...

  6. asp.net core中的razor页面

    Razor 页面(Razor Pages)是 ASP.NET Core 2.0 中新增的一种Web页面模型,相对MVC形式更加简单易用,可以说是一个服务端的MVVM模型,本文简单的介绍一下它的用法. ...

  7. 如何在ASP.NET Core 2.0中使用Razor页面

    如何在ASP.NET Core 2.0中使用Razor页面  DotNetCore2017-11-22 14:49 问题 如何在ASP.NET Core 2.0中使用Razor页面 解 创建一个空的项 ...

  8. ASP.NET CORE RAZOR :将文件上传至 ASP.NET Core 中的 Razor 页面

    本部分演示使用 Razor 页面上传文件. 本教程中的 Razor 页面 Movie 示例应用使用简单的模型绑定上传文件,非常适合上传小型文件. 有关流式传输大文件的信息,请参阅通过流式传输上传大文件 ...

  9. 创建基于ASP.NET core 3.1 的RazorPagesMovie项目(三)-已搭建基架的Razor页面解释和更新

    本节主要介绍在上一节中通过搭建基架而创建的Razor页面,并做一些UI改变. 一.创建.删除.详细信息和编辑页面 1.双击Pages/Movies/Index.cshtml.cs文件,这是一个Razo ...

随机推荐

  1. Linux下使用Ansible处理批量操作

    Ansible介绍: ansible是一款为类unix系统开发的自由开源的配置和自动化工具.它用python写成,类似于saltstack和puppet,但是不同点是ansible不需要再节点中安装任 ...

  2. python基础之面向对象OOP

    #类(面向对象) PageObject设计模式 unittest 知识体系#函数式编程import datetimebook_info = { "title":"Pyth ...

  3. PAT乙级:1092 最好吃的月饼 (20分)

    PAT乙级:1092 最好吃的月饼 (20分) 题干 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种"最好吃"的月饼,那势必在吃货界引发一场腥风 ...

  4. SpringBoot: 后台接口文档 - 基于Swagger3

    目录 前言:什么是Swagger 起步:(只需简单的3步) 加载依赖 添加注解@EnableOpenApi 启动SpringBoot,访问Swagger后台界面 配置:基于Java的配置 注解:Swa ...

  5. At 、Crontabl定时任务

    之前笔者是在本地写的博客,然后用 windows 定时任务启动写的脚本上传到 Github 上,现在又遇到了 Linux 上的定时任务,项目还要用到 Quartz 定时任务框架 1. 一次性定时任务 ...

  6. CentOS7下OpenLDAP部署

    OpenLDAP作为开源的LDAP服务,可用于搭建统一认证平台,在很多企业内部应用比较广泛,本文将介绍在CentOS7下OpenLDAP的部署. 环境: CentOS 7.4 OpenLDAP 2.4 ...

  7. elementUI的el-input和el-select宽度 一致

    在用vue时,用到了element组件的 el-input 和 el-select(多选框)组件,但是宽度显示不一样,查看了多选框的css,发现element-style是写死的 添加style=&q ...

  8. Pytorch Torchvision Transform

    Torchvision.Transforms Transforms包含常用图像转换操作.可以使用Compose将它们链接在一起. 此外,还有torchvision.transforms.functio ...

  9. 创建型-单例模式 SingletonPattern

    单例模式 Singleton 保证一个类只有一个实例的实现方法 给其他类提供一个全局的访问点. 由自己创建自己的唯一实例 实现 实现方法分为饿汉式(线程安全).懒汉式(线程不安全).懒汉式(lock+ ...

  10. noip模拟测试21

    考试总结:这次考试,前两道题的题面描述不是很清楚,导致我不知道输出格式到底是什么,挂了差不多80分(好多人也是这样),总体来说,这次考试的前两道题暴力分是打满了,最后一道题打了一个假的暴搜,在考场上没 ...