内容简介:Razor 页面(Razor Pages)是 ASP.NET Core 2.0 中新增的一种Web页面模型,相对MVC形式更加简单易用,可以说是一个服务端的MVVM模型,本文简单的介绍一下它的用法。参考文档:配置
Razor 页面(Razor Pages)是 ASP.NET Core 2.0 中新增的一种Web页面模型,相对MVC形式更加简单易用,可以说是一个服务端的MVVM模型,本文简单的介绍一下它的用法。
参考文档: https://docs.microsoft.com/zh-cn/aspnet/core/razor-pages/
配置
首先配置Startup类,添加MVC支持
public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseMvc(); } }
编写Razor页面
Razor页面依然是cshtml,它通常在Pages文件夹下,要求以 @page 开头作为标记。相对Razor视图更为简单,无需通过控制器处理。
@page <h1>Hello, world!</h1> <h2>The time on the server is @DateTime.Now</h2>
Razor页面也是支持Razor语法的。 模型绑定 、 标记帮助程序 和 HTML 帮助程序均只可用于 Razor 页面类中定义的属性
访问路径
页面的 URL 路径的关联由页面在文件系统中的位置决定:
-
默认情况下,运行时在"Pages"文件夹中查找 Razor 页面文件。
-
URL 未包含页面时,Index 为默认页面
如下是基本示例:
文件名和路径 |
匹配的 URL |
/Pages/Index.cshtml |
/ 或 /Index |
/Pages/Contact.cshtml |
/Contact |
/Pages/Store/Contact.cshtml |
/Store/Contact |
/Pages/Store/Index.cshtml |
/Store 或 /Store/Index |
绑定模型
Razor页面支持模型绑定,以实现动态页面功能。通过@model指令绑定模型。
@page @model WebApplication2.Pages.HomeModel @{ Layout = null; } <h3>@Model.Request.Host</h3>
模型类继承自PageModel类,需要实现一个OnGet函数,在请求页面会调用。
public class HomeModel : PageModel { public void OnGet() { } }
同样,它也支持其它几种Http操作的响应。
-
OnGet / OnGetAsync
-
OnPost / OnPostAsync
-
OnDelete / OnDeleteAsync
Url参数
对于页面"Home.cshtml",默认的页面是"/Home",它本身是可以支持带查询参数的Url的,如"/Home?id=32&name=abc"。要获取这些参数,可以在Model的 Request.Query 属性获取。
也可以直接在OnGet中添加参数
public void OnGet ( string name, int id)
url解析时候可以直接映射到参数中,不匹配的参数会以默认值代替。
路由
如果要将url映射成"/Home/{name}/{id}"的形式,可以在@page指令中添加参数。
@page "{name}/{id}"
此时就可以接受"/Home/abc/32"这样的路由了,可以通过Model的 RouteData.Values 获取参数。
也可以直接在OnGet中添加参数,Url解析后直接映射到参数,不匹配的参数会赋默认值。
发布
发布的时候需要添加MvcRazorCompileOnPublish,否则不会发布cshtml
<
PropertyGroup
>
<
MvcRazorCompileOnPublish
>
false
</
MvcRazorCompileOnPublish
>
</ PropertyGroup
相关文档
以上所述就是小编给大家介绍的《asp.net core中的razor页面》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- vue页面跳转后返回原页面初始位置方法
- Flutter 三种方式实现页面切换后保持原页面状态
- 点击a链接打开第三方页面变成下载页面问题
- 页面遮罩层,并且阻止页面body滚动。bootstrap模态框原理
- Vue 页面状态保持页面间数据传输的一种方法
- 渐进式配置webpack4单页面和多页面(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ANSI Common Lisp
Paul Graham / Prentice Hall / 1995-11-12 / USD 116.40
For use as a core text supplement in any course covering common LISP such as Artificial Intelligence or Concepts of Programming Languages. Teaching students new and more powerful ways of thinking abo......一起来看看 《ANSI Common Lisp》 这本书的介绍吧!