在mvc razor视图中注册dll

时间:2012-03-10 08:17:07

标签: asp.net-mvc-3

在网络表单中,我们可以在页面上方编写此代码:

<%@ Register Assembly="xxx.CaptchaGenerator" 
Namespace="xxx.CaptchaGenerator" TagPrefix="mycaptcha" %>

然后可以使用:

<mycaptcha:CaptchaControl ID="ccJoin" 
runat="server" CaptchaHeight="31" CaptchaLength="5" />

我怎么能在mvc3,razor中做到这一点?我使用这种语法@Using xxx.CaptchaGenerator并在我的网络配置中添加以下行:

<pages>
  <namespaces>

    <add namespace="xxx.CaptchaGenerator"  />

    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages"/>
  </namespaces>
</pages>

但它不起作用。

2 个答案:

答案 0 :(得分:1)

您可以将命名空间添加到~/Views/web.config,而不是~/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="xxx.CaptchaGenerator"  />
      </namespaces>
    </pages>
</system.web.webPages.razor>

答案 1 :(得分:0)

因为我知道不能在视图中使用服务器控件(razorengine)..
您可以使用aspx文件,然后使用html.partial(aspx fileName)在父视图中调用它 我知道这不是一个好的解决方案,也许不是正确的答案,但它有用的亲爱的mohsen
شایدراهدیگهایمباشه