在网络表单中,我们可以在页面上方编写此代码:
<%@ 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>
但它不起作用。
答案 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
شایدراهدیگهایمباشه