Razor 页面是 asp.netcore MVC的一个新特性,他可以是页面编码边的简单而又高效,
在vs新建的.net core web程序中已经添加了对于 Razor页面的支持 startup.cs -> configureservices-> services.addmvc();
在看基本页面
1 @page 2 <h1>Hello, world!</h1> 3 <h2>The time on the server is @DateTime.Now</h2>
这段代码开上去类似一个Razor视图代码 ,而不同的地方在于@Page指令 这个指令是文件转化成mvc操作,这就说明他可以直接处理请求 不用通过控制器,且值得注意的是@page必须是页面上的第一个指令,
【viewdata】可以通过CiewDataAttribute 将数据传递到页面,控制器或者razor页面模型上使用[ViewData]修饰的属性将值存储在ViewDataDictionary中并从此处进行加载
[ ViewData] public string Title { get; } = "About";
读取
<title>@ViewData["Title"] - WebApplication</title>
【tempData】
这个属性存储的事从未读取过得数据 其中 keep,peek两个方法可以用具检查数据而不进行删除,但如果正常的读取过后(不调用方法)则读取的数据会删除
设置 [TempData] public string Message { get; set; } 读取 <h3>Msg: @Model.Message</h3>
【AddRazorPagesOptions】
public void ConfigureServices(IServiceCollection services) { services.AddMvc() .AddRazorPagesOptions(options => { options.RootDirectory = "/MyPages"; options.Conventions.AuthorizeFolder("/MyPages/Admin"); }); }
services.AddMvc()
.AddRazorPagesOptions(options =>
{
...
})
.WithRazorPagesRoot("/path/to/razor/pages"); 【指定Razor页面已于应用中 自定义根目录的位置提供相对路径】
通过RazorPagesOptions可以设置页面的根目录 【在这里我大概还记得一句话约定大于配置】
【基本都是用angular vue等其他页面 进行分离 这块的东西就不写了】