Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC4中,如何将视图元素之一呈现为XML文本?_C#_Xml_Asp.net Mvc 4 - Fatal编程技术网

C# 在MVC4中,如何将视图元素之一呈现为XML文本?

C# 在MVC4中,如何将视图元素之一呈现为XML文本?,c#,xml,asp.net-mvc-4,C#,Xml,Asp.net Mvc 4,在MVC4应用程序中,我试图构建一个标准的细节视图,但其中一个字段是XML文本,我想在页面上留下这样的内容。我已经花了几个小时来尝试,但我所能做的就是显示删除标记的XML内容 div class="display-label"> @Html.DisplayNameFor(model => model.stringElement) </div> <div class="display-field"> @Html.DisplayFor(model

在MVC4应用程序中,我试图构建一个标准的细节视图,但其中一个字段是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>
div class=“显示标签”>
@DisplayNameFor(model=>model.stringElement)
@DisplayFor(model=>model.stringElement)
@DisplayNameFor(model=>model.xmlement)
@MvcHtmlString.Create(ViewBag.xmlement)

第一个字段按预期显示,而第二个字段显示所有内容,但xmlElement字符串中的所有标记、行尾都丢失。我看到了一个引用,如果整个页面是xml,我可以使用text/xml作为页面类型,但这只是视图中的一个字段。有什么想法吗?

更改视图代码如下:

如果未对xmlElement进行编码:

 <div class="display-field">
      @MvcHtmlString.Create(HttpUtility.HtmlEncode(ViewBag.xmlElement).Replace("\n", "<br/>"))
 </div>

@MvcHtmlString.Create(HttpUtility.HtmlEncode(ViewBag.xmlement).Replace(“\n”,“
”)
如果xmlElement已编码:

  <div class="display-field">
      @MvcHtmlString.Create(HttpUtility.HtmlDecode(ViewBag.xmlElement).Replace("\n", "<br/>"))
 </div>

@MvcHtmlString.Create(HttpUtility.HtmlDecode(ViewBag.xmlement).Replace(“\n”,“
”)
这会将xml视为文本

根据评论更新答案


您可以用

标记替换行尾。这将在没有任何外部库的情况下解决您的问题

太棒了,现在它显示了所有标签。但我觉得所有的线尾都不见了,所以现在看起来像一根长绳子。有没有可能我可以保留原始的s或应用任何显示正确标识的“xml美化器”?你可以尝试使用类似的东西或使用markdown你可以使用,或者你可以尝试使用这些程序包中的一些进行markdown你引导我朝着正确的方向前进,所以我接受了答案。最终版本是按照中的建议格式化我的字符串,然后简单地将您的解决方案封装在@MvcHtmlString.Create(HttpUtility.HtmlEncode(ViewBag.xmlement))中