博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net core中的razor页面
阅读量:7125 次
发布时间:2019-06-28

本文共 1690 字,大约阅读时间需要 5 分钟。

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

参考文档:

 

配置

首先配置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 

Hello, world!

The time on the server is @DateTime.Now

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; }

@Model.Request.Host

模型类继承自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解析后直接映射到参数,不匹配的参数会赋默认值。

 

发布

发布的时候需默认是将cshtml编译后发布的,如果要发布cshtml,则要添加MvcRazorCompileOnPublish为false。

  <PropertyGroup>

    <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
  </PropertyGroup>

 

相关文档

  • (非常全面,强烈推荐)

转载地址:http://odeel.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
SHELL中的if流程控制
查看>>
python字符转码的理解
查看>>
2019-5-8时代的变迁
查看>>
Microsoft .NET Native
查看>>
C#与Java的RSA(1)
查看>>
在centos上安装svn server
查看>>
KNN算法的Python实现
查看>>
实用的正则表达式的总结
查看>>
Windows Server2012 配置打印服务器图文教程
查看>>
CentOS 6.5下Samba服务器的安装与配置
查看>>
网站安全测试工具GoLismero
查看>>
数据包编辑工具bittwiste
查看>>
IIS日志代码分析,常见的200,404,301,302分别代表什么意思
查看>>
Windows Server 2019 -正式发布
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
history用法详解
查看>>
win7 下java开发环境搭建
查看>>
更新yum源时出现的问题
查看>>