Sve*_*vek 2 c# razor .net-core asp.net-core razor-pages
我不是使用预捆绑软件的忠实拥护者AddMvc(),AddMvcCore()而是更喜欢使用捆绑软件。
话虽如此,我不知道如何去使用新的(如2.0)AddRazorPages()与AddMvcCore()。
例如,如果我们对中间件进行“裸露”配置以仅使用AddRazorPages()从官方存储库中找到的中间件
// loaded the NuGet package Microsoft.AspNetCore.Mvc.RazorPages
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddRazorPages();
}
Run Code Online (Sandbox Code Playgroud)
创建foo.cshtml页面并将其放入.\Pages\目录后,当我导航到URL时,它将返回404(找不到页面)\Foo。
。\ Pages \ Foo.cshtml
@page
@model IndexModel
@using Microsoft.AspNetCore.Mvc.RazorPages
@functions {
public class IndexModel : PageModel
{
public string Message { get; private set; } = "In page model: ";
public void OnGet()
{
Message += $" Server seconds { DateTime.Now.Second.ToString() }";
}
}
}
<h2>Hello World</h2>
<p>
@Model.Message
</p>
Run Code Online (Sandbox Code Playgroud)
上面的示例页面摘自Microsoft文档:ASP.NET Core中的Razor页面简介
有没有人知道这个,或者知道缺少什么?我在想路由问题。
原来有两个问题。
(1)我需要运行MVC中间件(du!)
public void Configure(IApplicationBuilder app, ... )
{
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
(2)然后引发了异常,这迫使我不得不包括 .AddAuthorization()
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddRazorPages();
}
Run Code Online (Sandbox Code Playgroud)
在这里,它被超级简化为一个简单的控制台应用程序:
//using System.IO;
//using Microsoft.AspNetCore.Builder;
//using Microsoft.AspNetCore.Hosting;
//using Microsoft.Extensions.DependencyInjection;
public static void Main(string[] args)
{
IWebHost host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureServices(services =>
{
services.AddMvcCore()
.AddAuthorization()
.AddRazorPages();
})
.Configure(app =>
{
//app.UseExceptionHandler("/error");
app.UseStaticFiles();
app.UseMvc();
})
.Build();
host.Run();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1243 次 |
| 最近记录: |