2014-02-14 3 views
0

Я использую ajax.beginform и вызываю объект json в моем контроллере для визуализации объектов формы после отправки формы. Я хочу вставить новую строку таблицы, которая захватывает данные из базы данных. Каков правильный способ сделать это? Мне нужна помощь в функции jquery. Вот мой код.Добавить новую строку в таблицу после отправки формы. -JQuery, Ajax

Посмотреть

@using (Ajax.BeginForm("SubmitForm", "Controller", null, new AjaxOptions 

     { 
      HttpMethod = "POST", 
      OnSuccess = "RenderObjectsAfterSubmit(data);" 
     })) 

{ 

<div>Request # <span id="ID"></span></div> 
<div> 
    @Html.Label("Name") 
    <div> 
     @Html.TextBoxFor(model => model.Name) 
    </div> 
</div> 
<button type="submit" id="btnSubmit">Submit</button> 

<table id="myTable"> 
    <thead> 
     <tr> 
      <th>Name</th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var item in Model) 
     { 
      <tr> 
       <td>@item.Name</td> 
      </tr> 
     } 
    </tbody> 
</table> 
} 

Jquery Функция

function RenderObjectsAfterSubmit(data) { 
    if (data != null && data.model != null) { 
     $("#ID").html(data.model.Id); 
     $("<tr><td>$('#Name').html(data.model.Name);</td> </tr>").insertAfter("#myTable"); **Here is where I need help.** 
    } 
    onSuccess(data, '', '#ajaxresult', '', '#btnSubmit'); 
} 

Контроллер

public ActionResult SubmitForm(Model model) 
{ 

if (ModelState.IsValid) 
{ 
    try 
    { 
     return Json(new 
     { 
      success=true, 
      model=model 
     }); 
    } 
} 
} 
+0

Я не знаю, как написать эту часть. Я хочу вставить новую строку в таблицу (myTable). – MDuB

+0

Вы пытаетесь вставить имя в таблицу html, которая была указана в форме в базе данных? –

+0

Махеш, да. Я хотел бы вставить новую строку в таблицу html после нажатия кнопки «Отправить». – MDuB

ответ

0

Попробуйте это.

$("<tr><td>"+$('#Name').text()+"</td> </tr>").appendTo("#myTable"); 
+0

С этой строкой кода я получаю [object Object]. – MDuB

+0

Да, я забыл, что html() вернул объект, возможно, теперь это приемлемо. – Wilmer

+0

text() возвращает объект тоже. Я думаю, что это имеет какое-то отношение к тому, как называется JSON. Просматривая мой код, я не вижу проблемы. – MDuB

0

в OnSuccess функции

попробовать

$("#myTable").append("<tr><td>"+$('#Name').val()+"</td> </tr>"); 
0

я должен был изменить способ, которым я делаю вещи. Я получил его для работы, просто добавив функцию Id в OnSuccess. Таким образом, это выглядит так.

onSuccess (данные, '#myTable', '#ajaxresult', '', '#btnSubmit');

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