我在Win7上运行Visual Studio 2008 sp1,安装了MVC2 RTM。
我使用向导创建了一个新的MVC2项目,无法调试特定页面。使用webforms甚至MVC1,我能够坐在View页面上,点击F5,然后在我正在处理的页面上启动VS2008中的集成Web服务器。非常方便构建应用程序逻辑。
当我尝试这个时,我得到一个“无法找到资源”错误页面。
我刚才用一个新的MVC2 Web应用程序项目重试了这个。以下是我在创建要重现的新项目后所采取的步骤:
我在浏览器中看到的用于此次运行的链接是:http://localhost:49471/Views/Account/Register.aspx
我做了一些谷歌搜索,并找到了与确保安装所有HTTP服务器部分相关的建议。我仔细检查并确保安装了“HTTP错误”和“HTTP重定向”。
如果我保留原来的项目设置,在文本框中没有任何内容设置为“特定页面”,那么路由工作,我总是得到默认主页。我希望这不是唯一的选择。
谢谢!
答案 0 :(得分:4)
通常,ASP.NET MVC中的“无法找到资源”(这是一个HTTP 404)表示某种路由问题。
将“开始操作”设置为页面(任何页面)可能是您遇到此问题的原因。 AFAIK,这将永远导致404,因为MVC项目不做页面,他们做动作。
尝试清除“开始操作” - 然后您应该在运行项目时看到“索引操作/视图”页面。接下来,如果要在启动时转到特定的Controller Action,请在Start Action中输入[ControllerName] / [Action],不要使用.aspx页面名称。
答案 1 :(得分:2)
因为我刚发现这个链接正在寻找同一类答案,所以希望这会有所帮助,因为没有人能够回答我的问题。如果它是相同的,这是有效的:
VS,当你去更改启动页面时(通过鼠标右键单击页面并选择“设置为起始页面”)似乎将路径(在MVC项目中)放置为好像这是一个普通的旧ASPX网络应用。当您需要特定页面时,项目属性中所需的路径是Web服务器之后的路径(通常在开发时:http:\ localhost:####)。所以如果你想要你的页面“foo.aspx”或“foo.cshtml”(假设你在“Home”下面,你会想要放置Home \ foo(没有扩展名)。
这也假定您的“虚拟路径”设置为“\”。
重点是,你不用文件夹和扩展名。看起来像一个bug(又名:“正在审查的功能”)给我。由于项目类型是MVC(使用aspx或cshtml页面),项目属性页面应该知道如何实现这一点。考虑这个请求:)
但至少现在你可以测试/开发特定的页面。
HTH。
答案 2 :(得分:0)
如果在向项目添加区域之前复制了正在使用的控制器,请仔细检查命名空间!
答案 3 :(得分:0)
如果您在Web项目的属性下没有设置起始页面,则可能发生这种情况的一个原因。所以这样做:
Right click on your mvc project
Choose "Properties"
Select the "Web" tab
Select "Specific Page"
Assuming you have a controller called HomeController and an action method called Index, enter "home/index" in to the text box corresponding to the "Specific Page" radio button.
现在,如果启动Web应用程序,它将带您进入HomeController的Index操作方法呈现的视图。
(或)
简单地说,您也可以打开项目中的一个控制器,然后点击F5或Ctrl + F5。
现在发生的是,您目前位于/Views/home/Index.cshtml视图中,只需按F5或Ctrl + F5即可。在mvc项目中,您无法直接打开带有.cshtml扩展名的文件,因为IIS无法理解。控制器应该从操作方法中返回匹配的视图。
作为附注还要检查您是否正确安装了MVC 3。如果我的回答没有帮助,我很抱歉..