当我在Visual Studio中创建新的MVC 3项目时,我要做的第一件事就是创建一个名为Home的新控制器,然后右键单击Index stub并创建一个新视图。
我的问题是,当我在解决方案资源管理器中选择了索引文件并构建解决方案时,我收到一条错误消息,指出无法找到它。如果我使用root / Home或root / Home / Index导航到页面,它仍然无效。
我还使用MVC附带的示例网站创建了一个新项目,并且无法弄清楚空解决方案与可能给我这个问题的示例解决方案之间的代码有何不同。在global.asax中,看起来已经有一个家庭控制器的路由设置,所以我很困惑。
答案 0 :(得分:1)
您的控制器类应该调用HomeController
,而不是Home
。在您显示的屏幕截图中,我看到您已将其称为Home
。按照惯例,ASP.NET MVC中的所有控制器类都必须具有Controller
后缀。在Global.asax
中,您应该有一个默认路由规则,其中声明:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这意味着当您运行网站并请求/
时,它会在Index
上查找HomeController
操作。
答案 1 :(得分:0)
我无法使用Microsoft Web Developer 2010 Express,ASP.NET MVC 3重现并创建一个新的空Razor-view项目。当您选择“添加视图”时,您是否启用了“创建为部分视图”?如果是这样,那可能就是问题所在。您是否启用了“使用布局或母版页”并选择现有母版页?如果没有,那可能就是问题......
在空项目中路由看起来很好。我看到带有这些URL的Home / Index视图:
将有问题的项目发布为.zip?