Маршрутизация MVC не захватывает строку запроса

в моем Global.ascx.cs у меня есть этот параметр для маршрутизации:

routes.MapRoute(
"HomeTarget",
"{TargetCode}",
new { controller = "Home", action = "Index", TargetCode = "" });

routes.MapRoute(
    "Default",                                              // Route name
    "{controller}/{action}/{id}",                           // URL with parameters
    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults

В моем HomeController у меня есть действие Index (), подобное этому:

[AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Index(string TargetCode)
    {
        return View();
    }

Когда я захожу на сайт, например, mysite.com/Test1, я полагаю, что он должен принимать «Test1» в качестве TargetCode, но это не так ... Что мне делать, чтобы он принял «Test1» в качестве TargetCode , Я не хочу этого делать: mysite.com/?TargetCode=Test1

Большое спасибо, Кенни.


person Xuan Vu    schedule 15.10.2009    source источник
comment
Ваш пример работает в простом приложении ASP.NET MVC, созданном с использованием шаблона Visual Studio по умолчанию и запущенном в Cassini. Так что, возможно, в вашей конфигурации есть что-то особенное, что мешает ей выбрать желаемый маршрут.   -  person Darin Dimitrov    schedule 15.10.2009
comment
Очевидно, что-то не так с движком MVC или VS ... Я просто закомментировал код, построил решение, затем не комментировал код и перекомпоновал, и все работает, как ожидалось! Спасибо, что посмотрели Дарина.   -  person Xuan Vu    schedule 15.10.2009


Ответы (1)


Похоже, что-то не так с VS 2008 или с фреймворком. Теперь он работает нормально. Спасибо, что искали.

person Xuan Vu    schedule 15.10.2009