将MVC引入ASP.Net - 404错误

时间:2010-07-19 20:35:58

标签: model-view-controller asp.net-mvc-2

我有一个现有的ASP.Net应用程序,我试图引入MVC2。

希望我能记住这些步骤,但我所做的是以下内容:

  1. 创建了一个虚拟MVC2项目。
  2. 比较并合并.csproj,导致Add Item命令显示MVC2项目。
  3. 比较并合并了web.config
  4. 比较并合并了global.asax.cs
  5. 添加了模型,视图和控制器目录
  6. 添加了带有索引操作的HostController和Index.aspx(无逻辑)
  7. 修改后的路线/主机/索引默认
  8. 现在,当我通过根地址http://localhost/MyApp访问应用程序时,一切正常。

    但是,当我访问http://localhost/MyApp/Host/Index时,我收到了404错误。对于我创建的任何Controller / Actions,我得到相同的结果。我可以让它们出现的唯一方法是使用路由配置中的默认值。我安装了Phill Haack's route debugger并且它什么也没做。显然我的路由存在一些问题,但我无法弄明白。

    我错过了哪些想法?

1 个答案:

答案 0 :(得分:0)

Bah ...事实证明这与IIS 5.1和MVC路由有关。

我在我的应用程序中使用以下路由解决了这个问题(注意.aspx扩展名)。

routes.MapRoute("Root", "", new { controller = "Host", action = "Index" });
routes.MapRoute("Default", "{controller}/{action}.aspx", new { controller = "Host", action = "Index" });

意味着我不能拥有干净的路线,但至少它有效。