Xml.cshtml
@Html.TextArea("", ViewData.TemplateInfo.FormattedModelValue.ToString())
<script type="text/javascript">
CKEDITOR.replace('@(ViewData.TemplateInfo.HtmlFieldPrefix)', {
allowedContent: true
});
</script>ViewModel
public class MyViewModel
{
public int Id { get; set; }
[UIHint("Xml")]
public string Xml { get; set; }
}视图
@model Project1.ViewModels.MyViewModel
@Html.EditorFor(model=>model.Xml)控制器
public ActionResult MyAction()
{
var sitemap = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement(ns + "urlset",
new XElement(ns + "url",
new XElement(ns + "loc", "example.com"),
new XElement(ns + "lastmod", String.Format("{0:yyyy-MM-dd}", DateTime.Now)),
new XElement(ns + "changefreq", "Weekly"),
new XElement(ns + "priority", "0.5")
)));
var viewModel = new MyViewModel();
viewModel.Id = 5;
viewModel.Xml = sitemap.ToString();
return View(viewModel);
}在控制器内部,创建站点地图,并将包含Xml的视图模型发送到视图。在视图中,EditorFor成功地转换为CKEditor。但问题是,它移除Xml标记并显示纯文本。如果我显示源代码,就可以正确地看到Xml。我只是安装了CodeSnippet插件,并在config.js中添加了config.extraPlugins = 'codesnippet';,但没有起到任何作用。如何在CKEditor中以Xml形式显示sitemap?
发布于 2015-02-28 11:24:54
CKEditor是编辑XML文档的错误工具。
如果你搜索一点点,你会发现其他人尝试过,但这违背了这个编辑器的目的,你需要做太多的自定义更改。
一般情况下,不要尝试使用HTML编辑器编辑XML。搜索使用XML设计的工具或使用纯文本区域
https://stackoverflow.com/questions/28761151
复制相似问题