2017-01-13 3 views
1

グリッドパッケージがインストールされているかなり古いMVCプロジェクト、Grid.MVCを継承しました。それは広範に使用され、それを取り出したり交換することはオプションではありません(クライアントはそれを支払うことはありません)。2つのグリッドパッケージがインストールされています:次のメソッドまたはプロパティの間で呼び出しが曖昧です

私たちはサイトに新しいポータルセクションを作成しました。 (そしてより良い)グリッド、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)'

これは簡単な修正です。私がする必要があるのは、古いグリッドにどれが1つあるかを伝えることだけです。しかし、私は構文を理解していない。ビューには、すべて正しい(古い)バージョンを指す@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はあなたにそれを打ち負かしました。それでも、非常に感謝しています。 –

関連する問題