我希望编辑器可以编码,因为我想将编辑器文本发布到控制器,但我发现当我刷新页面(单击F5)时,编辑器会再次对文本进行编码。我Model.Body
也是包含html标记:例如,第一次进入页面是OK,并显示“我的模型正文在这里”,我刷新页面它显示如下的html标记,但我只想编码一次,我也使用没有缓存,但它不起作用。第三次刷新页面,它再次编码,并显示<table><tbody>...
模型:
//after search,my Model.Body is here
<table>
<tbody>
<tr><td align="center" style="font-weight:bold;">
<span style="background-color:#ccff33;">My Model Body Is Here</span>
</td></tr>
</tbody>
</table>
查看:
@(Html.Kendo().Editor()
.Name("Body")
.Tools(tools => tools.Clear()
.Bold().Italic().Underline().Strikethrough()
.JustifyLeft().JustifyCenter().JustifyRight().JustifyFull()
.InsertUnorderedList().InsertOrderedList()
.Outdent().Indent()
.CreateLink().Unlink()
.InsertImage()
.SubScript()
.SuperScript()
.ViewHtml()
.FontName()
.FontSize()
.FontColor().BackColor()
)
.HtmlAttributes(new { style = "width:90%;height:500px" })
.Value(Model.Body))
控制器:
[OutputCache(Duration = 0)]
public ActionResult Index(int id=0)
{
return View(ModelRepository.GetModelById(id));
}
答案 0 :(得分:1)
这是由从浏览器bfcache获取页面时编辑器的默认编码引起的。为了解决这个问题,在视图中设置Encoded(false),并通过设置[AllowHtml]属性来指示该字段将在模型中包含HTML。另一方面,您可以只删除bfcache。
答案 1 :(得分:0)
尝试在编辑器中设置.Encode(false)
。显示内容时,您可能需要执行@Html.Raw(Model.Content)