当我尝试在 ASP.NET MVC 3 中为与当前 Controller 不同的命名空间中的 Controller 使用 Html.Action
时,出现错误:
代码:
@Html.Action("Foo", "Application", new { id = "FG2" })
错误:
The controller for path '/rrmvc/store/checkout' was not found or does not implement IController.
仅当 Controller ApplicationController
与当前 Controller 位于不同的命名空间时才会发生此错误,例如 StoreControllers.CheckoutController
(事实上它们也位于完全不同的区域) )。
调用 Html.Action
时是否无法指定 namespace (完全限定 namespace 等明显方法似乎都不起作用)?
没有可用的 lambda 方法,我有 no luck using Html.RenderAction
在 MVC3 RTM 中。
编辑:我认为这可能与该地区有关 - 或者这也可能是一个完全的转移注意力的事情。我在不同的命名空间中有另一个 Controller 可以正常工作 - 所以我认为问题更复杂。如果我弄清楚了,我会回复一个答案 - 或者直接删除这个问题,以免造成困惑!
最佳答案
如果 Controller 位于不同区域,您可以尝试指定此区域名称:
@Html.Action("Foo", "Application", new { id = "FG2", area = "foo" })
如果您已经在该区域内并且想要渲染位于根目录中的 Controller 上的操作,您可以尝试以下操作:
@Html.Action("Foo", "Application", new { id = "FG2", area = "" })
关于asp.net-mvc - 在 ASP.NET MVC 中调用 @Html.Action(...) 时如何指定命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269744/