页面模型 PageModel
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的更多相关文章
- 移动设备和SharePoint 2013 - 第2部分:设备管道和SharePoint页面模型
博客地址:http://blog.csdn.net/foxdave 原文地址 在该系列文章中,作者展示了SharePoint 2013最显著的新功能概观--对移动设备的支持. 该系列文章: 移动设备和 ...
- Web Pages(单页面模型)
.NET 是一套框架,用来个HTML.JS.CSS和服务器端脚本构建网页和网站. 可以有三种开发模式:Web Pages(单页面模型).MVC(模型视图控制器).Web Forms(事件驱动模型) W ...
- Webdriver的设计模式:Page Object(页面模型)
设计思想:面向对象,将单个页面所有可能用到元素封装到一个page类中,并提供一些常用的方法,其属性就代表页面元素,普通方法代表对元素所做的操作 以博客园的登录页面为例: import org.open ...
- ASP.NET Core Razor页面禁用防伪令牌验证
在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证. Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的.数据驱动的网站: ...
- [转] 微信小程序页面间通信的5种方式
微信小程序页面间通的5种方式 PageModel(页面模型)对小程序而言是很重要的一个概念,从app.json中也可以看到,小程序就是由一个个页面组成的. 如上图,这是一个常见结构的小程序:首页是一个 ...
- asp.net core中的razor页面
Razor 页面(Razor Pages)是 ASP.NET Core 2.0 中新增的一种Web页面模型,相对MVC形式更加简单易用,可以说是一个服务端的MVVM模型,本文简单的介绍一下它的用法. ...
- 如何在ASP.NET Core 2.0中使用Razor页面
如何在ASP.NET Core 2.0中使用Razor页面 DotNetCore2017-11-22 14:49 问题 如何在ASP.NET Core 2.0中使用Razor页面 解 创建一个空的项 ...
- ASP.NET CORE RAZOR :将文件上传至 ASP.NET Core 中的 Razor 页面
本部分演示使用 Razor 页面上传文件. 本教程中的 Razor 页面 Movie 示例应用使用简单的模型绑定上传文件,非常适合上传小型文件. 有关流式传输大文件的信息,请参阅通过流式传输上传大文件 ...
- 创建基于ASP.NET core 3.1 的RazorPagesMovie项目(三)-已搭建基架的Razor页面解释和更新
本节主要介绍在上一节中通过搭建基架而创建的Razor页面,并做一些UI改变. 一.创建.删除.详细信息和编辑页面 1.双击Pages/Movies/Index.cshtml.cs文件,这是一个Razo ...
随机推荐
- Java:代码高效优化
本文转自阿里技术站,感谢阿里前辈提供的技术知识,微信关注 "阿里技术" 公众号即可实时学习. 1.常量&变量 1.1.直接赋值常量值,禁止声明新对象 直接赋值常量值,只是创 ...
- SpringBoot:springboot项目jar包如何引入外置配置文件
springboot项目打成jar包,默认读取的classpath路径下的配置文件,config.properties是自定义配置文件. 如果要把config.properties配置 ...
- TestComplete 64位和32位之间的区别
在64位系统上,有两种版本的TestComplete:32位和64位.本主题描述了TestComplete x64及其32位版本之间的区别.关于TestComplete x64启动TestComple ...
- Spring常见异常说明
文章要点 Spring bean 的声明方式 Spring bean 的注入规则 Spring bean 的依赖查找规则 Spring bean 的名称定义方式和默认名称规则 XXX required ...
- varnish4.X安装
目录 1. rpm方式 2. 编译安装 2.1 依赖包 2.2 编译Varnish 本文提供了两种安装方式,但建议使用编译安装. 官方链接:https://varnish-cache.org/ 部署文 ...
- python使用笔记008-模块
模块的原理: 1.就是一个python文件 2.标准模块是python自带的 3.第三方模块需要自己安装 导入模块的顺序: 1.从当前目录下找 2.从python的环境变量中找 一.自己定义的模块 1 ...
- C语言:标识符 关键字 保留字 表达式 语句
标识符(Identifier)标识符就是程序员自己起的名字,符号常量(宏).变量名.函数名.宏名.结构体名等,它们都是标识符.遵守规范:C语言规定,标识符只能由字母(A~Z, a~z).数字(0~9) ...
- 一、k8s介绍(第一章、k8s高可用集群安装)
作者:北京小远 出处:http://www.cnblogs.com/bj-xy/ 参考课程:Kubernetes全栈架构师(电脑端购买优惠) 文档禁止转载,转载需标明出处,否则保留追究法律责任的权利! ...
- 程序员们,还在挣扎着上不了github吗
前言 无兄弟,不篮球:无github,不代码.github和stackoverflow是程序员们的最爱,哪怕是github总是在抽疯,虐了程序员们千百遍,但他们还是想各种办法艰难地在github分享他 ...
- 春招后端阿里腾讯字节美团Offer拿来吧你,面试经验分享
近期很多童鞋在准备校招了,找了蚂蚁的一位童鞋,给大家分享一波面试经验,以及面试心得,希望能帮大家在秋招拿到一个好结果 我自己的22届春招实习算是告一段落,给自己做个总结,也给大家分享一下面试的一些心得 ...