我想在MVC 6.0项目中使用Areas。
这些是我的路线:
app.UseMvc(routes =>
{
// NOT work
routes.MapRoute("new_default",
"{area}/{controller=Home}/{action=Index}/{id?}");
// NOT work
routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
// Uncomment the following line to add a route for porting Web API 2 controllers.
// routes.MapWebApiRoute("DefaultApi", "api/{controller}/{id?}");
});
我在我的根项目上创建了
"Areas" folder
"Application" folder
with a
Controllers/HomeController.cs
Views/Home/Index.cshtml
[Area("Application")]
[Route("[controller]")]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
当我去网址时:
域/应用程序/主页它找不到索引文件我得到404,为什么?
答案 0 :(得分:1)
将属性路线的模板更改为[Route("[area]/[controller]")]
。现在,您/application/home
之类的请求应该可以正常运行。
此处area
,controller
和action
是路径令牌,将由此属性装饰的区域,控制器和操作名称替换。这是ASP.NET 5中的一个新概念,用于减少一次又一次地提供相同值的冗余。
请注意,当您使用属性路径修饰控制器/操作时,无法从启动类中定义的常规路径访问它们。