ASP.NET MVC2:找不到控制器

时间:2010-06-23 21:29:55

标签: asp.net-mvc iis-7 asp.net-mvc-2 routing

我有一个使用区域的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?

3 个答案:

答案 0 :(得分:1)

您可能没有正确设置IIS设置以正确映射请求。

IIS是否验证您已将“通配符应用程序映射”设置为:

c:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

并确保您拥有“验证文件存在”复选框未选中

Walkthrough - 阅读“IIS6无扩展名网址”

部分

alt text http://haacked.com/images/haacked_com/WindowsLiveWriter/07de283cb368_B754/09-wildcard-extension-mapping_3.png

More information with IIS 6 MVC setup

More IIS Info

编辑:由于您使用的是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,感谢您的所有想法。