在ASP.NET MVC中调用@ Html.Action(...)时如何指定命名空间

时间:2011-03-11 06:34:30

标签: asp.net-mvc actionmethod

当我尝试在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


编辑:我认为它可能与该地区有关 - 或者也许这可能是一个完整的红鲱鱼。我在另一个名称空间中有另一个控制器可以正常工作 - 所以我认为问题更复杂。如果我弄明白的话,我会回复一个答案 - 或者只是删除这个问题,如果不是为了避免混淆!

1 个答案:

答案 0 :(得分:6)

如果控制器位于不同的区域,您可以尝试指定此区域名称:

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

如果您已经在该区域内并且想要在根目录中的控制器上呈现操作,您可以尝试这样做:

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