我已经安装了MVC3Contrib ...奇怪的是,这些示例表明我可以使用它们来渲染剃刀页面中的链接,如下所示:
@( Html.ActionLink<HomeController>(c => c.Index(), "Go home") )
这在某种程度上对我不起作用..虽然,在我的控制器中,我可以做到
return new RedirectToRoute<MyController>(c => c.Index());
很好..我得到的错误是The non generic link ActionLink cannot be used with type arguments
就好像没有安装contrib ..事实上,我甚至没有在intellisense中看到mvc future action link选项
我只是无法弄清楚为什么会这样做,我需要在这里做额外的事吗?
如果您需要任何其他信息,请询问,我不知道我应该在这里发布什么......
<小时/> 的修改
答案 0 :(得分:3)
确保Microsoft.Web.Mvc
命名空间在范围内,这是定义扩展方法的地方:
或将其添加到<namespaces>
文件的~/Views/web.config
部分,以便在所有视图中显示此命名空间:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Microsoft.Web.Mvc" />
</namespaces>
</pages>
</system.web.webPages.razor>
我想在您的控制器代码中添加了using MvcContrib.ActionResults;
,这就是为什么您可以看到RedirectToRouteResult<T>
类可用的原因。