将数据从局部视图提交到控制器MVC

Dez*_*z79 2 asp.net-mvc asp.net-mvc-partialview razor

我有一份就业记录列表,您也可以使用局部视图从同一页面添加就业记录.

下面是jobs.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>
Run Code Online (Sandbox Code Playgroud)

继承人部分视图_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>


}
Run Code Online (Sandbox Code Playgroud)

并且我的应用程序控制器:

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

                Add Data.....
            }
        }
        catch
        {

        }

        return View(model);
    }
Run Code Online (Sandbox Code Playgroud)

编译时,为表单生成以下html:

<form action="/Application/Employment?Length=26" method="post"> 
Run Code Online (Sandbox Code Playgroud)

它带来一个长度字符串?而是调用就业控制器?

希望一切都清楚......

问题一:当我从局部视图中单击提交按钮时,它不会转到指定的添加数据的控制器.任何人都可以看到我出错的地方?

问题二:当我开始工作时,我想用新记录更新就业清单......我是否正确地采用这种方式?任何提示赞赏.

Joh*_*kor 9

答案1:首先尝试这个,让我知道是否会击中你的控制器.

 @using (Html.BeginForm("AddEmployment", "Application", FormMethod.Post))
Run Code Online (Sandbox Code Playgroud)

答案2:要更新就业清单,我认为您可能希望将模型保存到您的数据库,然后将您的工作清单显示在同一页面或不同的页面上,将数据从数据库调用到列表或表格中显示.

编辑: 看起来好像没有应用表单属性.对于你的employment.cshtml,我个人不会在我的@Html语句中使用{}.你不能做我上面所说的,因为你的错误只有在我把它写成时才会发生

 @using (Html.BeginForm("AddEmployment, Application", FormMethod.Post))
Run Code Online (Sandbox Code Playgroud)

错过那些结束报价是导致你的问题的原因.