1

我正在对返回部分视图的控制器中的操作进行 ajax 调用。部分视图是将附加的行,或者它将替换项目网格中的现有行(取决于我是添加还是编辑行项目)。在 Google Chrome 的“网络”选项卡中,我得到了正确的 HTML 字符串,例如:

<tr class="" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5">
    <td><img style="width:100px; height:100px;" src="http://localhost/Project/6b39488b-db2d-495e-957c-ede0eb462292.png" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5"/></td>
    <td>bvcbvX</td>
    <td>6b39488b-db2d-495e-957c-ede0eb462292.png</td> 
</tr> 

但在我的 Ajax 成功函数中:

function onDataEdited(data, status, xmlhttp) { 
    alert(data);
}  

我去掉了行和标签,如下所示:

<img style="width:100px; height:100px;" src="http://localhost/Project/6b39488b-db2d-495e-957c-ede0eb462292.png" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5"/> 
    bvcbvX
    6b39488b-db2d-495e-957c-ede0eb462292.png

所以来自 jquery 的东西会剥离我的标签,只留下内容。

对操作的调用是通过 Ajax 完成的,如下所示:

function MakeAjaxCall() {
    $('#myForm').ajaxForm({
        iframe: true, ---> here is needed since I am adding a file upload from my form
        beforeSubmit: function () { 
            if (!$('#myForm').valid())
                //process validation

            return $('#myForm').valid();
        },
        success: function (data, status, xmlhttp) {  
            if (xmlhttp.getResponseHeader('ErrorHeader') == null ||
                xmlhttp.getResponseHeader('ErrorHeader') == "") {

                //process success
            }
            else { 
                //process error
            } 
        },
        error: function (xhr, textStatus, errorThrown) {
            alert(xhr); 
        }
    });
} 

谁能告诉我如何在不被剥离和标签的情况下获取我的响应数据?

我正在使用这个 jquery 插件 (malsup.com/jquery/form) 来制作“ajaxified”表单,以便通过 Ajax 提交包含文件的表单。该插件中的“ajaxForm”方法只有“xml”、“json”、“script”和 null(我正在使用)作为数据类型,并且响应中仍然去除了“xml”的标签。如果我设置 'json' 或 'script' 它会引发客户端错误,指定它无法解析响应(当它是 html 时试图将其解析为脚本)。

4

1 回答 1

0

数据类型可能有问题:http: //malsup.com/jquery/form/#options-object

于 2013-10-03T11:47:30.350 回答