我正在使用Kendo UI的编辑器,所以我有很大的问题.
我不知道编辑器返回的显示项目.
编辑转换如下:
- <img src="someurl" />
至:
- lt;p><img src="someurl"/></p>
- @Html.Raw(item.description)
其中description是由kendo返回的字符串.
所以我不知道如何在我的视图中正确显示它
任何帮助,将不胜感激.
解决方法
KendeUI编辑器有一个名为encoded的选项,用于配置编辑器是否应提交编码的HTML标记.
encoded的默认值为true
如果您不想存储未编码的文本,请在创建编辑器时使用此片段:
- $("#Editor").kendoEditor({
- encoded: false
- });
但是因为您没有将编码文本发送到服务器,所以Asp.net请求验证器启动并且它将中止您的请求.
如果您使用强类型视图,则可以使用模型属性上的AllowHtmlAttribute:
视图:
- @model MyModel
- @using(Html.BeginForm("SomeAction","SomeController"))
- {
- @Html.TextAreaFor(m => m.Editor)
- <input type="submit" value="Save" />
- }
- <script type="text/javascript">
- $(function(){
- $("#Editor").kendoEditor({
- encoded: false
- });
- });
- </script>
模型:
- public class MyModel
- {
- [AllowHtml]
- public string Editor { get; set; }
- }
控制器动作
- public ActionResult SomeAction(MyModel myModel)
- {
- //Save to db,etc.
- }
您还需要在web.config中设置以下内容,否则此属性在.NET 4.0中不起作用:
- <httpRuntime requestValidationMode="2.0"/>