从局部视图数据提交到控制器MVC(Submit Data from partial view to

2019-06-23 22:33发布

我的就业记录列表,还可以在同一页面使用局部视图中添加的就业记录。

继承人employment.cshtml具有用于记录列表和局部视图中添加出现在一个模式弹出一个新的记录的局部视图。

<h2>Employment Records</h2>

  @{Html.RenderPartial("_employmentlist", Model);}                              

<p>
<a href="#regModal" class="btn btn_b" rel="fancyReg">Add New Record</a>
</p>

<div style="display:none">
    <div id="regModal"> 
              @{Html.RenderPartial("_AddEmployment", new ViewModelEmploymentRecord());}     

                        </div>
                    </div>

继承人的局部视图_AddEmployment.cshtml

@using (Html.BeginForm("AddEmployment, Application"))
{                   
@Html.ValidationSummary(true)

<div class="formEl_a">

<fieldset>
    <legend></legend>

     <div class="sepH_b">

            <div class="editor-label">
                @Html.LabelFor(model => model.employerName)
            </div>

         etc....etc....

</fieldset>

</div>
  <p>
        <input type="submit" class="btn btn_d" value="Add New Record" />

    </p>


}

和我的继承人应用控制器:

[HttpPost]
    public ActionResult AddEmployment(ViewModelEmploymentRecord model)
    {
        try
        {
            if (ModelState.IsValid)
            {

                Add Data.....
            }
        }
        catch
        {

        }

        return View(model);
    }

当编译以下HTML的形式产生:

<form action="/Application/Employment?Length=26" method="post"> 

它带来了一个长度的字符串? 并调用就业控制器呢?

希望一切都清楚....

问题一:当我从局部视图中点击提交按钮它不会去指定要添加数据的控制器。 任何人都可以看到我去错了吗?

问题二:当我得到这个工作,我想用新记录更新就业名单....我要对这个正确的方法是什么? 任何提示赞赏。

Answer 1:

答1:先试试这个,让我知道这是否击中了你的控制器。

 @using (Html.BeginForm("AddEmployment", "Application", FormMethod.Post))

答2:要更新工作清单,我会假设你想保存模型到数据库,然后有显示在同一页面或不同的页面调用从数据库中的数据到列表或表是对你的工作列表显示。

编辑:看起来好像没有被应用于表单属性。 为了您的employment.cshtml,我个人不使用{}在我@Html语句。 你不能做什么,我上面所述,因为只有当我写它作为你的出现错误

 @using (Html.BeginForm("AddEmployment, Application", FormMethod.Post))

缺少这些关闭的报价是什么原因造成您的问题。



Answer 2:

jQuery代码:

window.jQuery(document).ready(function () {
    $('#btnsave').click(function () {

        var frm = $("form");
        var data = new FormData($("form")[0]);
        debugger;
        $.ajax({
            url: '/Home/Update',
            type: "POST",
            processData: false,
            data: data,
            dataType: 'json',
            contentType: false,
            success: function (response) {
                alert(response);
            },
            error: function (er) { }
        });
        return false;
    });

});

控制器代码

[HttpPost]
    public JsonResult Update(Generation obj)
    {
        if (ModelState.IsValid)
        {
            return Json("done");
        }
        else
        {
            return Json("error create");
        }
    }

使用这些代码,你可以使用jQuery发布形式,并得到响应jsonresult



Answer 3:

你已经把@using (Html.BeginForm("AddEmployment, Application"))这是试图做的是调用称为动作"AddEmployment, Application"我觉得你的意思@using (Html.BeginForm("AddEmployment", "Application"))



文章来源: Submit Data from partial view to a controller MVC