【问题标题】:Pass xml from controller to js将xml从控制器传递给js
【发布时间】:2016-03-07 20:05:39
【问题描述】:

我要在 UI 上实现什么。我有一个对象表,对象的一个​​参数是 xml 字符串。当我单击某行的链接时,应该会打开带有格式化 xml 的弹出窗口。 因此,我尝试使用 viewmodel 将 xml 字符串传递给 View,然后将其放入链接的数据属性中。用js读取数据属性并弹出。我使用引导模式对话框。所以它看起来像这样:

<a class="open-xml" data-toggle="modal" data-xmlstring="@modal.Xml">Open xml</a>

在js中:

$(document).on("click", ".open-xml", function() {
        var responseXml = $(this).data('xmlstring');
        $("#xml-viewer").find("textarea").text(responseXml);
    }
);

但它只显示第一个单词。 我试图将其解析为 json 并在 js 中对其进行编码,但它仍然对我不起作用。也许您有其他解决方案,或者当前的工作示例?

【问题讨论】:

    标签: javascript c# jquery asp.net-mvc-4


    【解决方案1】:

    要设置 textarea 的值,请使用val()

    $("#xml-viewer").find("textarea").val(responseXml);
    

    如果这不起作用,您最好使用 ajax 将 xml 检索为文本并使用响应文本设置值

    【讨论】:

    • 问题是当我从数据中获取 xml 时 var responseXml = $(this).data('xmlstring');我只收到 xml 的第一个字,因为它是用 xml 格式分隔的
    • 浏览器可能不喜欢这样的 dom 中的 xml。将使用 ajax 来获取它
    • textarea 中 xml 的用途是什么?如果编辑会有更好的 UI 方法来做它
    • 这只是一种表示它的方式,它可能是另一种控件。主要问题是将xml传递给js。
    • 但是“使用 ajax 将 xml 作为文本检索并使用响应文本设置值”是什么意思?
    【解决方案2】:

    解决了。在带有

    的链接中添加另一个不显示的 div
    @model.Xml
    。并且通过点击得到这个html的和平并用js把它放到弹出窗口中。 所以我转移到 js 不是 xml、string 或 json 而是格式化的 html。

    【讨论】:

      猜你喜欢
      • 2015-02-03
      • 2019-01-06
      • 2016-02-09
      • 2016-11-28
      • 2015-11-02
      • 2021-12-30
      • 2016-03-27
      • 1970-01-01
      相关资源
      最近更新 更多