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

Asp.net mvc 在ASP.NET MVC中调用@Html.Action(…)时,如何指定命名空间,asp.net-mvc,actionmethod,Asp.net Mvc,Actionmethod,当我尝试在ASP.NET MVC 3中为与当前控制器位于不同命名空间的控制器使用Html.Action时,我得到一个错误: 代码: @Html.Action("Foo", "Application", new { id = "FG2" }) 错误: @Html.Action("Foo", "Application", new { id = "FG2" }) 路径控制器 “/rrmvc/store/checkout”不可用 找到或未实现 I控制器 仅当控制器ApplicationControl

当我尝试在ASP.NET MVC 3中为与当前控制器位于不同命名空间的控制器使用
Html.Action
时,我得到一个错误:

代码:

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

@Html.Action("Foo", "Application", new { id = "FG2" })
路径控制器 “/rrmvc/store/checkout”不可用 找到或未实现 I控制器

仅当控制器
ApplicationController
与当前控制器位于不同的命名空间(例如
StoreController.CheckoutController
)时,才会发生此错误(事实上,它们也位于完全不同的区域)

调用
Html.Action
时,是否没有办法指定名称空间(完全限定名称空间这样的明显方式似乎都不起作用)

没有lambda方法可以使用,我在mvc3rtm中使用过



编辑:我认为这可能与该地区有关——或者这也可能是一个完全的骗局。我在另一个名称空间中有另一个控制器可以正常工作,因此我认为问题更复杂。如果我弄明白了,我会用答案回答——如果不是为了避免混淆,就删除这个问题

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

@Html.Action("Foo", "Application", new { id = "FG2", area = "foo" })
如果您已经在该区域内,并且希望渲染位于根目录中控制器上的操作,则可以尝试以下操作:

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

非常感谢你。这是一个3小时的问题,我可以用很多方法轻松解决,但我就是不能放手。这非常有效。谢谢所有这些都是为了在页面的页脚打印出我生成的CSS的数字大小!如果其他人遇到这个问题,这是第二个对我有用的例子——“应用程序”控制器在任何区域都不存在,并且设置area=”“可以找到它