gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:58:22 24 4
gpt4 key购买 nike

我正在使用 ASP.Net MVC 3,已经引用了所有正确的 DLL(请参阅包含的屏幕截图),但由于某种原因,我收到了此编译错误。

Method Signature

Web.config Assemblies

Compilation Error

最佳答案

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

为什么会发生

System.Web.Mvc.Html 之间存在命名空间冲突和 System.Web.WebPages.Html

碰撞的结果是什么

系统.Web.Mvc.Html

此命名空间包含方法的定义
LabelExtensions.Label (HtmlHelper, String, String)
您会注意到,这是先例并导致问题的 namespace 。它只有两个重载。 (String)(String, String) .在测试时,这是唯一出现的选项。

如何绕过它

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

系统.Web.网页.Html

此命名空间包含方法的定义
HtmlHelper.Label (String, String, IDictionary<String, Object>)
您现在可以看到添加 new { @class = "myClass" } 的可用性存在。

创建您自己的实例

获取您自己的 HtmlHelper并绕过 LabelExtension像这样:

Razor

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

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

确保它没有嵌套在 Razor 或 <%= 内阻止,因为它会阻止它可用。它需要在页面的全局级别。

使用正确的标签

现在你可以使用这个:

Razor
@h.Label("firstName", "First Name", new { @class = "control-label" })
ASP
<%= h.Label("firstName", "First Name", new { @class = "control-label" }) %>

关于asp.net - 方法 'Label' 没有重载需要 3 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com