asp.net mvc 6.0 中的区域找不到索引文件
Areas in asp.net mvc 6.0 does not find Index file
我想在 MVC 6.0 项目中使用区域。
这些是我的路线:
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();
}
}
当我去 url:
domain/Application/Home 它没有找到索引文件我得到一个 404,为什么?
将属性路由的模板更改为喜欢[Route("[area]/[controller]")]
。现在您的 /application/home
之类的请求应该可以正常工作了。
这里的area
、controller
和action
是路由标记,它们将被该属性所修饰的区域、控制器和动作名称所取代。这是 ASP.NET5 中的一个新概念,用于减少重复提供相同值的冗余。
请注意,当您使用属性路由修饰 controllers/actions 时,它们无法从您启动时定义的常规路由到达 class。
我想在 MVC 6.0 项目中使用区域。
这些是我的路线:
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();
}
}
当我去 url:
domain/Application/Home 它没有找到索引文件我得到一个 404,为什么?
将属性路由的模板更改为喜欢[Route("[area]/[controller]")]
。现在您的 /application/home
之类的请求应该可以正常工作了。
这里的area
、controller
和action
是路由标记,它们将被该属性所修饰的区域、控制器和动作名称所取代。这是 ASP.NET5 中的一个新概念,用于减少重复提供相同值的冗余。
请注意,当您使用属性路由修饰 controllers/actions 时,它们无法从您启动时定义的常规路由到达 class。