2015-12-07 2 views
0

Я делаю вызов ajax, чтобы получить частичный вид и поместить внутри div.Ajax загруженный частичный вид не рендеринга

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

Однако #myDiv не получает HTML в нем, когда я $('#myDiv').html(data);, но когда я пытаюсь это:

$.ajax({ 
    url: '@Url.Action("GetPartial", "ControllerName")', 
    type: 'GET', 
    success: function (data) { 
     $('#myDiv').html("<div>Whatever</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 /> 

Но ничего не визуализируется.

Любые идеи?

+0

Я не вижу, что вы с помощью «данные» в обратном вызове успеха ... по крайней мере, у вас должно быть что-то вроде .. $ ('# myDiv'). html («

Whatever : "+data+"
»); –

+0

@ Sam.C, я использую его, читаю внимательно, мой первый фрагмент кода показывает, что он используется – chiapa

+0

@ Sam.C, yep, возвращенные данные описаны в последнем фрагменте кода, вот что входит в переменную 'data' – chiapa

ответ

0

Частичный вид вы возвращаетесь не очень хорошо отформатированный таблицы HTML, так что должно быть что-то вроде этого

<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, где вы просто хотите подключить строк вы могли бы сделать ... удалить «таблицы» тег и обновление JQuery как:

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

Спасибо Сэм. Я уже нашел решение, я предположил, что это как-то связано со структурой. Мне не нужен тег 'table', только теги' td' после 'tr'. Благодаря! – chiapa

0

Попробуйте $('#myDiv').html(data.d);

Или проверить console.log(data), чтобы увидеть объект подходит ..

+0

Объект идет, и он содержит то, что я написал в вопросе - см. Мой последний фрагмент кода – chiapa

+0

Хорошо. И он поступает как текст напрямую или в объект js? –

+0

Как обычный текст Pedrito – chiapa

Смежные вопросы