如何在kendoui编辑器中避免重复编码?

时间:2013-12-23 15:49:21

标签: asp.net-mvc kendo-ui kendo-asp.net-mvc

我希望编辑器可以编码,因为我想将编辑器文本发布到控制器,但我发现当我刷新页面(单击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));
 }

2 个答案:

答案 0 :(得分:1)

这是由从浏览器bfcache获取页面时编辑器的默认编码引起的。为了解决这个问题,在视图中设置Encoded(false),并通过设置[AllowHtml]属性来指示该字段将在模型中包含HTML。另一方面,您可以只删除bfcache。

答案 1 :(得分:0)

尝试在编辑器中设置.Encode(false)。显示内容时,您可能需要执行@Html.Raw(Model.Content)