Я пытаюсь визуализировать частичное представление на главной странице, используя Html.RenderAction () в VS 2010, используя MVC2. Вот мой вызов RenderAction ():
<% Html.RenderAction(
"Menu",
"Navigation",
new
{
currentAction = ViewContext.RouteData.Values["action"],
currentController = ViewContext.RouteData.Values["controller"]
}
); %>
Однако, когда он является конструктором контроллера навигации, он всегда попадает в конструктор, который определен без аргументов.
public class NavigationController : Controller
{
public NavigationViewModel navigationViewModel { get; set; }
public NavigationController()
{
-snip-
}
public NavigationController( string currentAction, string currentController )
{
-snip-
}
[ChildActionOnly]
public ViewResult Menu()
{
return View(this.navigationViewModel);
}
}
Из всех примеров, которые я видел, вы бы передавали аргументы с помощью вызова RenderAction (). Я не получаю никаких сообщений об ошибках, кроме как с жалобами, если я удаляю конструктор без заданных аргументов.
Как мне заставить его вызвать конструктор, у которого определены два аргумента? Я хотел бы иметь возможность сравнивать с currentAction и currentController при построении меню, чтобы правильно выделить раздел, в котором находится пользователь.