我刚刚将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"
答案 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版本的结构。我无法将它们全部删除,但我发现哪一个引起了问题并将其删除了。