内容简介: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单页面和多页面(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。