重複したコードを Html.Helpers クラスに抽出しようとしています。単純な html でヘルパー クラスを使用できますが、Kendo UI 拡張機能を使用しようとすると、エラーが発生します。それを言って:
CS1928: 'System.Web.WebPages.Html.HtmlHelper' には 'Kendo' の定義が含まれておらず、最適な拡張メソッド オーバーロード 'Kendo.Mvc.UI.HtmlHelperExtension.Kendo(System.Web.Mvc.HtmlHelper)' にはいくつかの定義があります。無効な引数
これを機能させるためのヘルプまたは回避策をいただければ幸いです。規格準拠のため、可能であれば app_code フォルダーにファイルを保持したいと考えています。
.cshtml ファイルのコード
@using Kendo.Mvc.UI
@helper LEASearch(string name)
{
@(Html.Kendo().AutoComplete()
.Name(name)
.Filter("contains")
.Placeholder("Entity ID, CTDS or Name")
.MinLength(2)
.HtmlAttributes(new { style = "width:390px" })
.DataSource(source => source.Read(read => read.Action("SearchLEAList", "DataPush")
.Data("onLEASearchIncluded"))
.ServerFiltering(true)).Events(events=> events.Select("selectLEAIncluded"))
.Template("<h5 data_entity=\"${data.EntityID}\""+
" data_ctds=\"${data.CTDS}\" data_name=\"${data.Name}\">"+
"ID:${data.EntityID} CTDS:${data.CTDS}</h5>"+
"<p>${data.Name}</p>")
);
}
Web.config system.web 名前空間
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Kendo.Mvc.UI"/>
</namespaces>
</pages>
View/Web.config Razor セクション
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>