Я опубликовал свой проект 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). Это правильно, потому что мой метод Index на HomeController выполняет RedirectAction для метода Details с параметром 2.
- Затем браузер нажимает http://www.example.com/myApp/Home/Details/2.. В этот момент я получаю 404. Не найдено.
Похоже, что / 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);
}
Так чего мне не хватает?