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

컨트롤러

,774,
+0

이 부분을 작성하는 방법이 명확하지 않습니다. 테이블 (myTable)에 새 행을 삽입하려고합니다. – MDuB

+0

양식을 데이터베이스에 제공 한 html 테이블에 이름을 삽입하려합니까? –

+0

마헤 쉬, 네. 제출을 클릭하면 html 테이블에 새 행을 삽입하고 싶습니다. – MDuB

답변

0

시도해보십시오. onsuccess는 기능에

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

이 코드 줄에서는 [object Object]를 얻습니다. – MDuB

+0

예 html()이 객체를 반환했음을 잊어 버렸습니다. 이제는 받아 들일 수 있습니다. – Wilmer

+0

text()도 객체를 반환합니다. JSON 호출 방법과 관련이 있다고 생각합니다. 내 코드를 살펴보면 문제가 보이지 않습니다. – MDuB

0

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

내가 일을하고 있던 방식을 변경했다보십시오. OnSuccess 함수에 ID를 추가하는 것으로 작동하도록했습니다. 그래서, 이렇게 보입니다.

onSuccess (데이터, '#myTable', '#ajaxresult', '', '#btnSubmit');

관련 문제