![](/img/trans.png)
[英]Should I use AddMvc or AddMvcCore for ASP.NET Core MVC development?
[英]ASP.NET Core 2.0 Razor Pages using AddMvcCore() instead of AddMvc()
我不是使用预先捆绑的AddMvc()
的AddMvcCore()
而是更喜欢使用AddMvcCore()
。
话虽如此,我想知道如何将新的(自2.0版本开始)的AddRazorPages()
与AddMvcCore()
。
例如,如果我们对中间件进行“裸露”配置,以仅使用从官方存储库中找到的AddRazorPages()
// loaded the NuGet package Microsoft.AspNetCore.Mvc.RazorPages
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddRazorPages();
}
创建foo.cshtml
页面并将其放入.\\Pages\\
目录后,当我导航至URL \\Foo
时,它将返回404(找不到页面)。
\\网页\\ 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>
上面的示例页面摘自Microsoft文档:ASP.NET Core中的Razor页面简介
有没有人知道这个,或者知道缺少什么? 我在想路由问题。
原来有两个问题。
(1)我需要运行MVC中间件(du!)
public void Configure(IApplicationBuilder app, ... )
{
app.UseMvc();
}
(2)然后引发异常,这迫使我必须包含.AddAuthorization()
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddRazorPages();
}
在这里,它被超级简化为一个简单的控制台应用程序:
//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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.