Я занимаюсь 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» в нем...
id
наdetailId
как в действии, так и в вызовеRenderAction
? - person Craig Stuntz   schedule 03.02.2010