我正在尝试将重复的代码提取到 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>
查看/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>