我有一个使用区域的MVC 2.0网站。当我转到默认页面(localhost / mywebsite / default.aspx)时,它正确地路由到正确控制器中的正确操作并正确呈现默认视图。
但是在页面上我有几个Html.ActionLinks,这些似乎无法找到Controller。当我点击页面中的链接时,出现404错误。
URL是我所期望的:localhost / mywebsite / MyAreaName / Home / Index(例如)。我也试过localhost / mywebsite / Areas / MyAreaName / Home / Index,但这也给了我404.
如何识别Controller?
答案 0 :(得分:1)
您可能没有正确设置IIS设置以正确映射请求。
IIS是否验证您已将“通配符应用程序映射”设置为:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
并确保您拥有“验证文件存在”复选框未选中。
Walkthrough - 阅读“IIS6无扩展名网址”
部分More information with IIS 6 MVC setup
编辑:由于您使用的是IIS 7,请验证它是否在集成模式下运行。如果它在经典模式下运行,则映射不会像IIS6的工作方式那样自动完成。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
答案 1 :(得分:0)
您正在使用区域,是否注册了区域路线?
ASP.NET MVC 2 Beta single-project Area registration getting HTTP 404
答案 2 :(得分:0)
@Kelsey,我确实已经使用集成管道模式正确设置了应用程序池。但是感谢你带领我走正确的道路。我在区域中的web.config中有所需的配置设置,而不是在网站的根目录中,因此从未应用路由。我将配置设置移动到根级别web.config,一切正常。
感谢您的帮助和Meff,感谢您的所有想法。