C# MVC 3中使用Razor的自定义库

C# MVC 3中使用Razor的自定义库,c#,asp.net-mvc,asp.net-mvc-3,razor,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,所以我正在为MVC3开发一个内部库,我想把它添加到我的项目中 我把它添加到我的web.config。我添加了程序集并将其添加到页面->名称空间部分,然后。。。不,不行 我试着重新编译,等等。。。但Razor一点也不喜欢。这不是一个智能感知问题。。。如果使用已定义的命名空间,则该网站无法运行 我让它工作的唯一方法是使用以下语句: @using Sample.Helpers 我不想在页面中使用它。我希望能够将其部署到许多项目中,并将其添加到web.config中,这无疑是一种可行的方法 有人遇到此

所以我正在为MVC3开发一个内部库,我想把它添加到我的项目中

我把它添加到我的web.config。我添加了程序集并将其添加到页面->名称空间部分,然后。。。不,不行

我试着重新编译,等等。。。但Razor一点也不喜欢。这不是一个智能感知问题。。。如果使用已定义的命名空间,则该网站无法运行

我让它工作的唯一方法是使用以下语句:

@using Sample.Helpers
我不想在页面中使用它。我希望能够将其部署到许多项目中,并将其添加到web.config中,这无疑是一种可行的方法


有人遇到此问题吗?

您需要将其添加到
~/Views/web.config
中,因为Razor使用不同的配置部分:

<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="YourNamespaceContainingTheHelperMethod" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

Razor使用不同的配置部分

 <configSections>
    <sectionGroup name="system.web.webPages.razor"
                  type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host"
               type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
               requirePermission="false" />
      <section name="pages"
               type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
               requirePermission="false" />
    </sectionGroup>
  </configSections>

<system.web.webPages.razor>
    <pages pageBaseType="Foo.Bar">
      <namespaces>
        <add namespace="Foo.FooBar" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

我的朋友解决了我的问题。我将它添加到主web.config中,但它根本不起作用。现在我需要找到一种方法将它添加到我的NuGet包中,这样它就可以在WebForm视图引擎和Razor中工作,但是,主要问题已经解决了。:)谢谢你,伙计!可能重复的