繁体   English   中英

使用jQuery将模型从视图传递到控制器

[英]passing model from view to controller using 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>

我想使用jquery将模型staffInfo传递给控制器​​,如下所示

<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中编写整个参数列表

你可以使用这个给表格ID

@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>

如我所见,您尝试使用AJAX提交表单? 查看序列化功能。

$('#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) {

            }
        });
    }
});

您可以使用getElementById获取值,然后发送操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM