MVCContrib可携式区域无法使用HtmlExtensions,MVC 3

| 我刚刚实现了MVCContrib的可移植区域功能,并且工作正常。我可以使用以下方法打开它:
http://localhost/projectname/portableAreaName
,但是如果我使用HtmlHelper扩展方法渲染它,则此可移植区域不起作用:
public static void  RenderHtmlWidget(this HtmlHelper Html)
{
        Html.RenderAction(\"Index\", \"HtmlWidget\", new {area = \"HtmlWidget\"});
}
并在视图中这样调用helper方法:
@using Project.Widgets.HtmlWidget;
@{Html.RenderHtmlWidget();}
我遇到错误:找不到视图“索引”或其主视图,或者没有视图引擎支持搜索到的位置。在可能的位置列表中,没有定义〜/ area /...。 但是我可以在视图中使用以下同一行代码成功渲染我的HtmlWidget:
@{Html.RenderAction(\"Index\", \"HtmlWidget\", new { area = \"HtmlWidget\" });}
我在做什么错?我该如何正确地将HtmlHelper扩展与MVCContrib可移植区域功能一起使用?     
已邀请:
可能有一些原因导致了这种情况。 在使用helper方法调用可移植区域的调用/父项目中,/ Areas /文件夹中是否有Web.config文件?如果没有,则必须复制在同一项目的/ Views /文件夹中找到的Web.config,并将新副本也同样放置在/ Areas /文件夹中。 在可移植区域项目的Registration类文件中,以\“ RegisterArea \”方法调用MapRoute之后,是否要调用\“ RegisterAreaEmbeddedResources(); \”? 是否将您的可移植区域项目中的每个视图都作为嵌入式资源而不是内容?在解决方案资源管理器中选择一个视图,然后按F4,\“ Build Action \”应该设置为\“ Embedded Resource \”,但是默认为\“ Content \” 您还需要确保可移植项目和使用项目都引用相同版本的MvcContrib,但也要使用相同版本的ASP.NET MVC。如果您的区域在多个项目中被引用,并且每个项目都基于MVC的不同版本(不太可能,但根据情况而定),则您所在的区域必须使用消耗项目使用的任何MVC版本。 我还建议使用Phil Haack的.NET路由调试器-它是您在使用应用程序中引用的单个DLL文件,并在Global.asax.cs中的ApplicationStart()中添加一行。这对于确定您的可移植区域是否已正确注册到基础项目中非常有用,并且有助于您追逐目标。     

要回复问题请先登录注册