MVC3 Contrib不在剃刀页面中工作,但在控制器中很好

时间:2012-05-12 16:15:54

标签: asp.net-mvc mvccontrib

我已经安装了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选项

enter image description here

我只是无法弄清楚为什么会这样做,我需要在这里做额外的事吗?

如果您需要任何其他信息,请询问,我不知道我应该在这里发布什么......

<小时/> 的修改
哦顺便说一句,我正在使用MVC区域,如果重要的话,我有大约3个区域,然后是主控制器等。

1 个答案:

答案 0 :(得分:3)

确保Microsoft.Web.Mvc命名空间在范围内,这是定义扩展方法的地方:

enter image description here

或将其添加到<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>类可用的原因。