加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 方法’Label’没有重载需要3个参数

发布时间:2020-12-16 06:32:00 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.Net MVC 3,已经引用了所有正确的DLL(参见附带的截图),但由于某种原因,我得到了这个编译错误. 解决方法 这是一个奇怪的事情.我能够重现你的错误.我还能够弄清楚它为什么会发生以及如何绕过它. 为什么会这样 在 System.Web.Mvc.Html 和 System.W
我正在使用ASP.Net MVC 3,已经引用了所有正确的DLL(参见附带的截图),但由于某种原因,我得到了这个编译错误.

解决方法

这是一个奇怪的事情.我能够重现你的错误.我还能够弄清楚它为什么会发生以及如何绕过它.

为什么会这样

System.Web.Mvc.HtmlSystem.Web.WebPages.Html之间存在名称空间冲突

碰撞的结果是什么

System.Web.Mvc.Html

此命名空间包含方法的定义

LabelExtensions.Label(HtmlHelper,String,String)

正如您将注意到的,这是占据先例并导致问题的命名空间.它只有两个重载. (String)或(String,String).在测试时,这是唯一出现的选项.

如何绕过它

你真正想要的是这个命名空间

System.Web.WebPages.Html

此命名空间包含方法的定义

HtmlHelper.Label(String,IDictionary< String,Object>)

您现在可以看到添加新{@class =“myClass”}的可用性.

创建自己的实例

获取您自己的HtmlHelper并绕过LabelExtension,如下所示:

剃刀

@{
 var h = new System.Web.WebPages.Html.HtmlHelper();
}

ASP

<% var h = new System.Web.WebPages.Html.HtmlHelper(); %>

确保它没有嵌套在剃刀或<%=块内,因为它会阻止它可用.它需要处于页面的全局级别. 使用正确的标签 现在你可以用这个: 剃刀 @ h.Label(“firstName”,“First Name”,new {@class =“control-label”}) ASP <%= h.Label(“firstName”,new {@class =“control-label”})%>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读