Как указать пространство имен при вызове @Html.Action() в ASP.NET MVC

Когда я пытаюсь использовать Html.Action в ASP.NET MVC 3 для контроллера в пространстве имен, отличном от текущего контроллера, я получаю сообщение об ошибке:

Код:

@Html.Action("Foo", "Application", new { id = "FG2" })

Ошибка:

Контроллер для пути «/rrmvc/store/checkout» не найден или не реализует IController.

Эта ошибка возникает только тогда, когда контроллер ApplicationController находится в другом ПРОСТРАНСТВЕ ИМЕН, отличном от текущего контроллера, такого как StoreControllers.CheckoutController (на самом деле они тоже находятся в совершенно разных областях).

Нет ли способа указать пространство имен при вызове Html.Action (ни один из очевидных способов, таких как полное определение пространства имен, не работает)?

Нет никаких лямбда-методов для использования, и мне не повезло с использованием Html.RenderAction< /a> в MVC3 RTM.


Редактировать : я думаю, что это может быть связано с местностью - или, возможно, это тоже может быть полным отвлекающим маневром. У меня есть другой контроллер в другом пространстве имен, который работает правильно, поэтому я думаю, что проблема более сложная. Я отвечу ответом, если разберусь, или просто удалю этот вопрос, если не избежать путаницы!


person Simon_Weaver    schedule 11.03.2011    source источник


Ответы (1)


Если контроллер находится в другой области, вы можете попробовать указать имя этой области:

@Html.Action("Foo", "Application", new { id = "FG2", area = "foo" })

и если вы уже находитесь внутри области и хотите выполнить действие, расположенное на контроллере в корне, вы можете попробовать это:

@Html.Action("Foo", "Application", new { id = "FG2", area = "" })
person Darin Dimitrov    schedule 11.03.2011
comment
Огромное спасибо. Это одна из тех трехчасовых проблем, которые я мог бы легко обойти множеством способов, но я просто не мог отпустить ее. Это сработало просто отлично. Спасибо. Все это для того, чтобы распечатать числовой размер моего сгенерированного CSS в нижнем колонтитуле страницы! - person Simon_Weaver; 11.03.2011
comment
Если кто-то еще столкнется с этой проблемой, это был второй пример, который сработал для меня - контроллер «Приложение» не присутствовал ни в одной области - и установка области = позволила его найти - person Simon_Weaver; 11.03.2011