我将我的VS2008 ASP.NET MVC 1.0项目发布到本地文件夹,然后将其FTP到我主机上的虚拟目录。我试图运行,它抱怨System.Web.Mvc.dll丢失,所以我复制了。
之后我得到了404.现在我知道它到达了我的HomeController.Index方法,因为它执行了RedirectToAction。下一个操作(在同一控制器中)是导致问题的原因。
我感觉路由无法正常工作。
我和Fiddler一起看了这个应用程序:
所以似乎/ Home / Details / 2没有映射到我的控制器,尽管下面的代码是global.asax:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
那么我错过了什么?
答案 0 :(得分:2)
您只需要部署MVC dll。路由附带SP1。我建议:
我一直在类似的情况下拉我的头发,不幸的是我的经验(主要是在IIS 6虽然),我不得不一遍又一遍地检查和检查所有这些点和配置的试验和错误来获得它工作。
答案 1 :(得分:2)
答案 2 :(得分:1)
确保服务器安装了ASP.NET MVC 1.0 RTM - 因为它具有运行MVC站点所需的所有dll(路由,mvc等)。