2014-02-14 40 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');