安装了两个网格包:以下方法或属性之间的调用不明确

问题描述 投票:2回答:3

我继承了一个安装了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 =>
{
     ....
}

图片可能更有帮助:

enter image description here

我在视图中尝试了各种完整路径的方法,但语法永远不对...

@GridMvc.Html.GridExtensions.Grid(Model.Leads)....  // Nope
@Html.GridMvc.Html.GridExtensions.Grid(Model.Leads)....  // Nope

等等等

同样,这可能很简单。我只是没有得到它。

c# asp.net-mvc asp.net-mvc-4
3个回答
2
投票

尝试将HtmlHelper实例作为第一个参数传递给扩展方法:

@NonFactors.Mvc.Grid.MvcGridExtensions.Grid(Html, Model.Leads)
@GridMvc.Html.GridExtensions.Grid(Html, Model.Leads)

2
投票

扩展方法可以作为标准静态方法调用,但只需将父类型作为第一个参数,因此您应该能够传递HtmlHelper

@GridMvc.Html.GridExtensions.Grid(Html, Model.Leads)

-1
投票

从views文件夹中的web.config禁用其中一个网格模板。 - >

© www.soinside.com 2019 - 2024. All rights reserved.