我继承了一个安装了Grid包的相当古老的MVC项目,Grid.MVC
。它被广泛使用,取出或替换它不是一种选择(客户不会支付它。)
我们刚刚为网站构建了一个新的门户网站部分,在其中,我们使用了一个新的(更好的)网格NonFactors.Grid.Core.MVC5。更多功能和选项。
但这是问题所在。在使用旧网格的所有地方,我现在得到这个运行时错误:
以下方法或属性之间的调用不明确:'NonFactors.Mvc.Grid.MvcGridExtensions.Grid(System.Web.Mvc.HtmlHelper,System.Collections.Generic.IEnumerable)'和'GridMvc.Html.GridExtensions.Grid(System .Web.Mvc.HtmlHelper,System.Collections.Generic.IEnumerable)'
这应该是一个简单的解决方案。我需要做的就是告诉旧网格他们是哪一个。但我不是在弄清楚语法。在视图中,它们都有一个指向正确(旧)版本的@using
。
@using GridMvc.Html
....
@Html.Grid(Model.Leads).Named("userGrid").Selectable(false).Columns(c =>
{
....
}
图片可能更有帮助:
我在视图中尝试了各种完整路径的方法,但语法永远不对...
@GridMvc.Html.GridExtensions.Grid(Model.Leads).... // Nope
@Html.GridMvc.Html.GridExtensions.Grid(Model.Leads).... // Nope
等等等
同样,这可能很简单。我只是没有得到它。
尝试将HtmlHelper
实例作为第一个参数传递给扩展方法:
@NonFactors.Mvc.Grid.MvcGridExtensions.Grid(Html, Model.Leads)
@GridMvc.Html.GridExtensions.Grid(Html, Model.Leads)
扩展方法可以作为标准静态方法调用,但只需将父类型作为第一个参数,因此您应该能够传递HtmlHelper
:
@GridMvc.Html.GridExtensions.Grid(Html, Model.Leads)
从views文件夹中的web.config禁用其中一个网格模板。 - >