ASP.NET MVC3 URL-параметры, имеющие нулевое значение - PullRequest
4 голосов
/ 05 июля 2011

По какой-то причине, когда я пытаюсь разрешить URL с аргументами в моей локальной установке ASP.NET MVC3, аргументы в основном заканчиваются на null в функции обработки моего контроллера.

Например,Я имею

public class HomeController : Controller 
{
    public ActionResult Foo(string bar)
    {
        ViewBag.Message = bar;
        return View();
    }
}

и пытаюсь посетить http://localhost/myapp/foo/sometext или http://localhost/myapp/home/foo/sometext, bar в основном оценивается как null вместо sometext.

Я довольно уверен, чтомоя установка MVC3 работает правильно, поскольку мне удалось запустить отдельное приложение с настраиваемым правилом маршрутизации всего несколько дней назад.Я немного опасаюсь, что я где-то испортил флаг конфигурации или что-то в этом роде.

Есть идеи, что здесь может быть не так?

1 Ответ

8 голосов
/ 05 июля 2011

При отображении маршрута по умолчанию ожидается действие с именем id в вашем действии.

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

Если вы измените свое действие на следующее:

public ActionResult Foo(string id)

, оно должно работать.Вы также можете использовать URL-адрес, например, если изменить имя параметра невозможно:

http://localhost/myapp/home/foo/?bar=sometext
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...