当我尝试在ASP.NET MVC 3中使用Html.Action
作为与当前控制器不同的命名空间中的控制器时,我收到错误:
代码:
@Html.Action("Foo", "Application", new { id = "FG2" })
错误:
路径控制器 '/ rrmvc / store / checkout'不是 发现或未实施 一个IController。
仅当控制器ApplicationController
与当前控制器位于与StoreControllers.CheckoutController
不同的NAMESPACE时才会出现此错误(实际上它们也处于完全不同的区域)。
在调用Html.Action
时是否无法指定命名空间(完全限定命名空间的明显方法似乎都不起作用)?
没有lambda方法可以使用,我在MVC3 RTM中有no luck using Html.RenderAction
。
编辑:我认为它可能与该地区有关 - 或者也许这可能是一个完整的红鲱鱼。我在另一个名称空间中有另一个控制器可以正常工作 - 所以我认为问题更复杂。如果我弄明白的话,我会回复一个答案 - 或者只是删除这个问题,如果不是为了避免混淆!
答案 0 :(得分:6)
如果控制器位于不同的区域,您可以尝试指定此区域名称:
@Html.Action("Foo", "Application", new { id = "FG2", area = "foo" })
如果您已经在该区域内并且想要在根目录中的控制器上呈现操作,您可以尝试这样做:
@Html.Action("Foo", "Application", new { id = "FG2", area = "" })