2017-01-13 20 views
1

我继承了一个安装了Grid包的相当老的MVC项目Grid.MVC。它被广泛使用,并且取出或更换它不是一种选择(客户端不会支付它)。安装了两个网格包:以下方法或属性之间的调用不明确

我们刚刚为网站构建了一个新的门户网站部分,并在其中使用了新的(和更好)网格,NonFactors.Grid.Core.MVC5。更多功能和选项。

但这是问题所在。在使用旧电网的所有地方,我现在得到这个运行时错误:

The call is ambiguous between the following methods or properties: 'NonFactors.Mvc.Grid.MvcGridExtensions.Grid(System.Web.Mvc.HtmlHelper, System.Collections.Generic.IEnumerable)' and '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 => 
{ 
    .... 
} 

与PIC可能更有帮助:

enter image description here

我已经试过视图中的完整路径的各种手段,但语法是永远不要对...

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

等等等等

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

回答

1

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

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

谢谢。搞定了! –

1

扩展方法是调用标准的静态方法,但只取父类型作为第一个参数,所以你应该能够通过如下HtmlHelper

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

谢谢!这是正确的,但Darrin击败了它。不过,非常感谢。 –

相关问题