2012-09-19 59 views
2

到控制器我有一個視圖通過模型使用jquery

@using staffInfoDetails.Models 
@model staffInfo 

<link href="../../Content/myOwn.css" rel="stylesheet" type="text/css" /> 
@{staffInfo stf = Model; 
    } 

<div id="education1"> 
@using (Html.BeginForm("addNewEdu","Home",FormMethod.Post)) 
{ 
    @Html.HiddenFor(x=>x.StaffId) 
    <table>  
    <tr> 
     <th>Country</th> 
     <th>Board</th> 
     <th>Level</th> 
     <th>PassedYear</th> 
     <th>Division</th> 
    </tr>  
    <tr> 
     @Html.EditorFor(x => x.eduList) 
    </tr> 
    <tr> 
    @*<td><input type="submit" value="create Another" id="addedu"/> </td>*@ 
    @*<td>@Html.ActionLink("Add New", "addNewEdu", new { Model })</td>*@  
    </tr> 
    </table> 
} 
<button id="addedu">Add Another</button> 
</div> 

我想通過模型staffInfo使用jquery如下

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#addedu").live('click', function (e) { 
//   e.preventDefault();   
      $.ajax({ 
       url: "Home/addNewEdu", 
       type: "Post", 
       data: { model: stf },//pass model 
       success: function (fk) { 
        //     alert("value passed"); 
        $("#education").html(fk); 
       } 

      }); 
     }); 
    }); 
</script> 

jquery的似乎只傳遞元件不是控制器整個模型,所以我怎樣才能將模型從視圖傳遞到控制器,這樣我就不必在jquery中編寫整個參數列表了

回答

0

您可以使用getElementById然後發送你的動作:

$(document).ready(function() { 
    var select = document.getElementById('...'); 
    $.ajax({ 
     type: "get", 
     url: "get_street_name", 
     data: { a: select }, 
     success: function (data) { 
      $('#result').html(data); 
     } 
    }); 
} 
+0

此外,你還可以使用JSON爲什麼你要通過模型到控制器只發送給ID的表格帶有ajax的參數,然後你可以使用你的模型在你的控制器方法中做任何動作 – Teodoris

2

正如我可以看到你試圖提交表單與AJAX?看看serialize函數。

$('#addedu').click(function(e) { 
    e.preventDefault(); 
    var form = $('form'); 

    if (form.valid()) { //if you use validation 
     $.ajax({ 
      url: form.attr('action'), 
      type: form.attr('method'), 
      data: form.serialize(), 
      success: function(r) { 

      } 
     }); 
    } 
}); 
5

ü可以用這個

@using (Html.BeginForm("addNewEdu", "Home", FormMethod.Post, new { id = "addNewEduForm" })) 
{ 

} 

然後在腳本

<script type="text/javascript"> 
    $('#addedu').click(function(e) { 
     e.preventDefault(); 
     if (form.valid()) { //if you use validation 
     $.ajax({ 
      url: form.attr('action'), 
      type: form.attr('method'), 
      data: $("#addNewEduForm").serialize(), 
     success: function(data) { 
       } 
     }); 
    } 
}); 
</script>