这个电话很模糊:Html.LabelFor

时间:2013-08-26 12:52:06

标签: c# asp.net-mvc asp.net-mvc-4

我刚刚将MVC3应用程序升级到MVC4,并在运行时收到错误。 (修剪得更好看)

  

错误CS0121:以下方法或属性之间的调用不明确:       'MyWebCore.HtmlHelperExtensions.LabelFor<CoreViewModel,string>(System.Web.Mvc.HtmlHelper<CoreViewModel>, System.Linq.Expressions.Expression<System.Func<CoreViewModel,string>>, object)'和
      'System.Web.Mvc.Html.LabelExtensions.LabelFor<CoreViewModel,string>(System.Web.Mvc.HtmlHelper<CoreViewModel>, System.Linq.Expressions.Expression<System.Func<CoreViewModel,string>>, object)'

我有自己的LabelHelperExtensions类,其中包含LabelFor方法。我的两个Web.config文件都引用了MVC4。如何使用我的扩展方法而不是MVC?

我的web.config:add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35

我的观看次数/网址:add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc"

3 个答案:

答案 0 :(得分:1)

  

我有自己的LabelHelperExtensions类,它包含LabelFor方法。如何使用我的扩展方法而不是MVC?

不是唯一的选择,但重命名方法以避免与已知的扩展方法发生冲突将是最干净的。您也可以直接调用静态方法(使用静态类名称预先设置方法),但这样做会破坏使用扩展方法的目的。

答案 1 :(得分:1)

首先,为什么还有其他方法可以覆盖MVC的LabelFor扩展?

http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs

你可能有合理的理由去做你正在做的事情,我不知道,但我会研究支持的方式来扩展这些助手。

答案 2 :(得分:0)

我有许多级联重写方法,它们反映了LabelExtensions类的MVC版本的结构。我无法将它们全部删除,但我发现哪一个引起了问题并将其删除了。