asp.net-mvc – 在asp.net mvc 3剃刀中识别html助手的问题

这是我的 Html帮助器的样子:
namespace WebApp.WebUI
{
    public static class HtmlExtensions
    {

            public static MvcHtmlString GenerateCaptcha(this HtmlHelper helper,string theme)
            {
                string publicKey = ConfigurationManager.AppSettings["CaptchaKey_Public"];
                string privateKey = ConfigurationManager.AppSettings["CaptchaKey_Private"];
                var captchaControl = new Recaptcha.RecaptchaControl
                        {
                            ID = "recaptcha",Theme = theme,PublicKey = publicKey,PrivateKey = privateKey
                        };

                var htmlWriter = new HtmlTextWriter(new StringWriter());

                captchaControl.RenderControl(htmlWriter);

                return new MvcHtmlString(htmlWriter.InnerWriter.ToString());
            }

     }
}

在这个视图中尝试使用它:

@{
        ViewBag.Title = "Register";
    }
    @model WebApp.WebUI.viewmodel.RegisterModel

    @using (Html.BeginForm("Register","Auth",FormMethod.Post,new { Id = "ERForm" }))
    {
        @Html.GenerateCaptcha("clean")   
    }

它给我这个错误

CS1061:’System.Web.Mvc.HtmlHelper< WebApp.WebUI.viewmodel.RegisterModel>‘不包含’GenerateCaptcha’的定义,也没有扩展方法’GenerateCaptcha’接受’System.Web.Mvc.HtmlHelper< WebApp.WebUI.viewmodel.RegisterModel>‘类型的第一个参数.可以找到(您是否缺少一个using指令或程序集引用?)

我究竟做错了什么.我的命名空间是正确的.它不会出现在@Html的智能感知中

解决方法

你可以添加
@using WebApp.WebUI

在您的剃须刀视图的顶部.

而且如果你想在许多不同的视图中重复使用这个帮助器,以避免每次添加到< 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="WebApp.WebUI" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

这样做后,请确保您重新编译并重新打开“智能感知”的“剃须刀”视图,以便有时间接听.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....