在MVC 4应用程序中,我试图建立一个标准的Details视图,但是其中一个字段是XML文本,因此我希望保留在页面上。我已经花了几个小时尝试,但是我能做的最好的事情就是显示XML删除标签的内容。
div class="display-label">
@Html.DisplayNameFor(model => model.stringElement)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.stringElement)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.xmlElement)
</div>
<div class="display-field">
@MvcHtmlString.Create(ViewBag.xmlElement)
</div>
第一个字段按预期显示,第二个字段显示所有内容,但所有标记,xmlElement字符串中的行尾均丢失。如果整个页面都是xml,我看到了一个参考,我可以使用text / xml作为页面类型,但这只是视图中的一个。有任何想法吗?
更改您的视图代码,如下所示:
如果未对xmlElement进行编码:
<div class="display-field">
@MvcHtmlString.Create(HttpUtility.HtmlEncode(ViewBag.xmlElement).Replace("\n", "<br/>"))
</div>
如果xmlElement被编码:
<div class="display-field">
@MvcHtmlString.Create(HttpUtility.HtmlDecode(ViewBag.xmlElement).Replace("\n", "<br/>"))
</div>
这会将您的xml视为文本。
根据评论更新答案
您可以使用<br/>
标记替换行尾。这将解决您的问题,而无需任何外部库
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句