2014-02-14 39 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

Mahesh,是的。我想在点击提交后在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(data,'#myTable','#ajaxresult','','#btnSubmit');