我正在使用CKEditor和ASP.NET MVC
,但是有一个非常奇怪的问题:如果我有一些错误并且内容必须格式化一些文本(例如应用粗体,使其成斜体或列表)回发到textarea,它显示为HTML文本 - “ul li”等,而不是再次设置样式(粗体,斜体等)。
我在配置中应用了一些选项:
config.htmlEncodeOutput = true; // to avoid text being interpreted as attack
config.enterMode = CKEDITOR.ENTER_BR; // in order not to place tags arround the text
config.basicEntities = false; // do display spaces as they are instead of and so on...
我在MVC
Server.HtmlDecode
和HttpUtility.Decode
中尝试了一些内置函数,但似乎没有任何效果。与MVC
一起使用的其他编辑器的解决方案也被接受。
这是.cshmtl文件:
@{
ViewBag.Title = "CkEditor";
}
@model HtmlTextEditorsDemos.Models.SimpleModel
<h2>CkEditor</h2>
<script src="~/Scripts/ckeditor.js"></script>
@using (Html.BeginForm())
{
@Html.TextAreaFor(x => x.Text, new { @class = "ckeditor" })
<input type="submit" value="send" />
}
在动作方法中,我只是为了测试目的而再次返回数据:
[HttpPost]
public ActionResult Index(SimpleModel model)
{
//model.Text = Server.HtmlDecode(model.Text);
return View(model);
}
SimpleModel类只是一个只有1个属性的测试模型类 - Text。
答案 0 :(得分:-1)
你可以试试这个
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@{
string description = Server.HtmlDecode(item.Description);
}
@Html.Raw(description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Note)
</td>
<td>
<img src="~/img/Uploads/@item.Pic" width="150" height="120" />
</td>
</tr>
}