【发布时间】:2010-02-10 07:08:01
【问题描述】:
我将我的 VS2008 ASP.NET MVC 1.0 项目发布到本地文件夹,然后通过 FTP 将其发送到主机上的虚拟目录。我尝试运行,它抱怨 System.Web.Mvc.dll 丢失,所以我复制了它。
之后我得到一个 404。现在我知道它访问了我的 HomeController.Index 方法,因为它执行了 RedirectToAction。下一个动作(在同一个控制器中)是导致问题的原因。
我感觉路由工作不正常。
我用 Fiddler 观看了该应用程序:
- 我去http://www.example.com/myApp
- 导致 301(永久重定向)到 http://www.example.com/myApp
- 然后我得到一个 302(重定向到 /myApp/Home/Details/2)。这是正确的,因为我在 HomeController 上的 Index 方法使用参数 2 对 Details 方法执行了 RedirectAction。
- 然后浏览器点击http://www.example.com/myApp/Home/Details/2。此时我收到 404 Not found。
因此,尽管以下代码是 global.asax,但 /Home/Details/2 似乎没有映射到我的控制器上:
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);
}
那么我错过了什么?
【问题讨论】:
标签: asp.net-mvc visual-studio-2008 deployment