好的,我知道在MVC 6中使用属性路由的最简单方法是:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
}
这是使用新令牌(没有区域)的控制器代码:
[Route("[controller]/[action]")]
public class HomeController : Controller
{
}
这是使用新令牌(带区域)的控制器代码:
[Area("MyArea")]
[Route("[controller]/[action]")]
public class HomeController : Controller
{
}
问题:
最后,我知道我可以玩这个游戏,但不是第一个基于会议的方法 - app.UseMvc() - 最简单的吗?
public void Configure(IApplicationBuilder app)
{
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
}
答案 0 :(得分:0)
Microsoft为您提供了两个选项,每个选项都有自己的优缺点。您应根据您的背景/需求决定哪一个更好。
基于约定的路由
优点:
缺点:
基于属性的路由
优点:
缺点:
如何决定使用哪一个:
如果您有/期望很少routes.MapRoute()
次来电 - >使用约定路由作为其更简单的
如果您有/期望有很多routes.MapRoute()
来电 - >使用属性路由