asp.net mvc 6.0中的区域找不到索引文件

时间:2015-11-09 23:11:26

标签: c# asp.net-core asp.net-core-mvc asp.net-mvc-areas

我想在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,为什么?

1 个答案:

答案 0 :(得分:1)

将属性路线的模板更改为[Route("[area]/[controller]")]。现在,您/application/home之类的请求应该可以正常运行。

此处areacontrolleraction是路径令牌,将由此属性装饰的区域,控制器和操作名称替换。这是ASP.NET 5中的一个新概念,用于减少一次又一次地提供相同值的冗余。

请注意,当您使用属性路径修饰控制器/操作时,无法从启动类中定义的常规路径访问它们。