2012-03-10 183 views
2

在網頁表單,我們可以這樣寫代碼的網頁上面:註冊的DLL

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

然後,它可用於:

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

我怎樣才能做到這一點MVC3,剃刀?我用這個語法@Using xxx.CaptchaGenerator,在我的web配置添加此行:

<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

當寫問題,請在發佈前檢查預覽。任何html標記都必須標記爲代碼,否則它們不會顯示在帖子中。 – 2012-03-10 08:23:53

回答

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> 
+0

存在問題存在TagPrefix屬性並使用它,但在此答案中不存在它。 如何在視圖中訪問CaptchaGenerator? – Mohsen 2012-03-10 11:12:33

+0

@Mohsen,我不明白你在問什麼。 – 2012-03-10 18:14:29

0

,因爲我知道不能使用服務器控件的視圖(razorengine)..
可以使用aspx文件,然後用html.partial調用它在你的父視圖(ASPX文件名)
我知道這不是一個很好的解決方案,也許不正確的答案,但它的有用親愛的穆赫辛
شایدراهدیگهایمباشه