目前,我将Html存储在数据库中并填充到Dropdownlist中,就像我在Razor中使用@funcion一样:
private string getHtmlTemplate()
{
string value = "<select id='htmlTemplate'><option value=''>Html Template</option>";
int i = 0;
foreach (AdminHtmlTemplateModel htmlTemplateModel in Model.GetAdminHtmlTemplates())
{
value += string.Format("<option value='{0}'>{1}</option>", htmlTemplateModel.templateCode, htmlTemplateModel.templateName);
//value += string.Format("<option value='{0}'>{1}</option>", i++, htmlTemplateModel.templateName);
templateCodes.Add(htmlTemplateModel.templateCode);
}
value += "</select>";
return value;
}
问题是存储在templateCode上的Html与当前的html文件冲突/合并 如何解决这个问题,我仍然希望那些Html值能够与Editor一起工作。 我尝试某种方式,如选择标记的值只是传递索引和函数:
@fucntion{
private string getHtmlTemplate()
{
string value = "<select id='htmlTemplate'><option value=''>Html Template</option>";
int i = 0;
foreach (AdminHtmlTemplateModel htmlTemplateModel in Model.GetAdminHtmlTemplates())
{
value += string.Format("<option value='{0}'>{1}</option>", i++, htmlTemplateModel.templateName);
}
value += "</select>";
return value;
}
}
<script>
$("#htmlTemplate").kendoDropDownList({
change: function (e) {
editor.exec("inserthtml", { value:@Model.GetAdminHtmlTemplateCodeByIndex(@:e.sender.value()) });
}
});
</script>
但它不起作用,因为我们无法将razor的jquery值传递给函数,对吗?
请帮帮我。感谢
答案 0 :(得分:0)
谢谢你们, 经过几个小时的研究,我发现我可以使用片段来解决我的问题,而不是在Kendo UI MVC中使用CustomControl。
private List<AdminHtmlTemplateModel> getHtmlTemplate()
{
////string value = "<select id='htmlTemplate'><option value=''>Html Template</option>";
////int i = 0;
////foreach (AdminHtmlTemplateModel htmlTemplateModel in Model.GetAdminHtmlTemplates())
////{
//// //value += string.Format("<option value='{0}'>{1}</option>", htmlTemplateModel.templateCode, htmlTemplateModel.templateName);
//// value += string.Format("<option value='{0}'>{1}</option>", i++, htmlTemplateModel.templateName);
//// templateCodes.Add(htmlTemplateModel.templateCode);
////}
////value += "</select>";
////return value;
return Model.GetAdminHtmlTemplates();
}
@(Html.Kendo().Editor().Enccode(false)
.Name("EmailBody")
.Tools(tools => tools
.ViewHtml()
//.CustomTemplate(ct => ct.Template(getHtmlTemplate())) // before
.Snippets(s => //after fixed
{
foreach (var item in getHtmlTemplate())
{
s.Add(item.templateName, item.templateCode);
}
})
这就是全部。它解决了我在Kendo UI MVC编辑器中插入HTML的问题。