1

我已经安装了 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未来操作链接选项

在此处输入图像描述

我只是不知道为什么会这样,我需要在这里做些什么吗?

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


编辑
哦,顺便说一句,我正在使用 MVC 区域,如果这很重要,我有大约 3 个区域,然后是主控制器等。

4

1 回答 1

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>可用类的原因。

于 2012-05-13T08:04:25.310 回答