我现在有一个需求,我的项目主页在views下的default文件夹内,我想在项目启动时首页就能自动是这个页面,如下图:
原来没有default这级文件夹时,路由设置成这样是可以找到首页的:
现在多了一级default,路由设置成下图这样,首页就找不到了。不过手动输入网址http://localhost:60230/Default/Home/Index是可以找到页面的。
小弟MVC新手,请高手赐教了,怎么才能实现我这个需求?
//首页路由也能
routes.MapRoute(
name: "Home", // 路由名称
url: "{controller}/{action}", // 带有参数的 URL
defaults: new { controller = "Home", action = "Index" } // 参数默认值
);
你这个首页路由要放在默认路由的前面.
而且你在views里面加了一级文件夹,你用view()返回的时候需要指定路径的,不能直接return view(),会找不到cshtml文件的
帮顶
加个 域吧
从你的请求Url来看,Default要变成Area区域了,所以Controller放在哪里都没关系,只要写路由时,写上Controller的命名空间即可,但匹配视图时,会到Area文件夹下找,而不是最外层的View文件夹下找Default.
加一个Home所有的Controller的命名空间,如:
routes.MapRoute(
name: "DefaultHome",
url: "Default/{controller}/{action}",
defaults: new { controller = "Home", action = "Index" },
new string[] { "YourProject.YourControllers" }
);