Параметр ok в RouteData, но в контроллере он равен нулю - PullRequest
0 голосов
/ 03 февраля 2010

Сейчас я несколько недель в MVC, и каждый день появляется что-то новое, что кажется мне довольно странным.Итак, я пытаюсь найти ответы на вопросы, с которыми я сталкиваюсь.Тем не менее, для текущей проблемы я не могу найти спускаемый ответ здесь на stackoverflow или где-нибудь в Google по этому вопросу ...

У меня проблема с передачей параметров моему контроллеруиспользуя метод HTML.RenderAction.По какой-то причине параметр корректно заканчивается в RouteData, но «параметр функции» имеет значение null.Я думаю, что это связано с моими картами маршрутизации, поэтому я хотел бы опубликовать их здесь для получения дополнительной информации.

Моя карта маршрутов (среди прочих, но я знаю, что мое текущее действие использует этот корень):

routes.MapRoute("Default","{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = "" },
            null,
            new[] { "Web.Controllers" }
        );

Действие моего контроллера:

public ActionResult GeneralManagementDetail(int? id)
{
        //dostuff
}

Вызов RenderAction:

<% Html.RenderAction("GeneralManagementDetail", "Person", new { id = 4 }); %>

Где, конечно, «4» в настоящее время является жестко заданным значением, и оно будетстать идентификатором объекта из содержащего там цикла foreach, который у меня есть.

Теперь, в результате чего получается, что «int id» в контроллере имеет значение NULL, однако, когда «QuickWatching» RouteData, онопределенно в нем есть пара ключей "id, 4" ...

Ответы [ 2 ]

1 голос
/ 04 февраля 2010

Хорошо, просто чтобы уточнить, проблема, очевидно, заключалась в том, что контроллеры кэшировались в предоставленной нам платформе (другая команда разработчиков делает эту платформу). Итак, когда мы копались в фреймворке и убедились, что контейнеры больше не кэшируются, передача параметров работала как чудо. Большое спасибо за ответы, но, похоже, проблема была в нашей компании!

0 голосов
/ 03 февраля 2010

Может быть, "id = (int?) Null" подойдет?Я имею в виду, что если типы перепутаны.

...