Ajax加载的部分视图无法呈现

时间:2015-12-07 15:59:39

标签: jquery html ajax asp.net-mvc partial-views

我正在进行ajax调用以检索部分视图并放入div。

$.ajax({
    url: '@Url.Action("GetPartial", "ControllerName")',
    type: 'GET',
    success: function (data) {
        $('#myDiv').html(data);
    }
});

但是,当我#myDiv$('#myDiv').html(data);没有获得任何HTML,但是当我尝试这个时:

$.ajax({
    url: '@Url.Action("GetPartial", "ControllerName")',
    type: 'GET',
    success: function (data) {
        $('#myDiv').html("<div>Whatever</div>");
    }
});

正如预期的那样,div会被<div>Whatever</div>填充。以下是data变量的内容:

<tr>
    <input type="radio" style="margin-right: 10px" name="credit-card" value="fjxtnw" checked />
    <strong>555555******4444</strong> (MasterCard)
    <label style="color: #808080; font-size: small">(default)</label>
    <span id="fjxtnw" class="delete_pm"><label style="color: darkred; font-size: small; margin-left: 5px">delete</label></span>
</tr>
<br />
<br />
<tr>
    <input type="radio" style="margin-right: 10px" name="credit-card" value="9rmqsw" />
    <strong>411111******1111</strong> (Visa)
    <span id="9rmqsw" class="delete_pm"><label style="color: darkred; font-size: small; margin-left: 5px">delete</label></span>
</tr>
<br />
<br />

但没有任何东西被渲染。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试$('#myDiv').html(data.d);

或者测试console.log(data)以查看对象即将来临......

答案 1 :(得分:0)

您要返回的局部视图格式不正确,因此它应该是这样的

<table>
    <tr>
<td>
        <input type="radio" style="margin-right: 10px" name="credit-card" value="fjxtnw" checked />
        <strong>555555******4444</strong> (MasterCard)
        <label style="color: #808080; font-size: small">(default)</label>
        <span id="fjxtnw" class="delete_pm"><label style="color: darkred; font-size: small; margin-left: 5px">delete</label></span>
</td>
        </tr>
        <tr>
<td>
            <input type="radio" style="margin-right: 10px" name="credit-card" value="9rmqsw" />
            <strong>411111******1111</strong> (Visa)
            <span id="9rmqsw" class="delete_pm"><label style="color: darkred; font-size: small; margin-left: 5px">delete</label></span>
</td>
        </tr>

</table>

然后你的jquery可以只是

$('#myDiv').html(data);

或者如果你已经有一个表HTML,你只想插入你可以做的行...删除“table”标签并将jquery更新为:

$("#myTable").append(data);