【发布时间】:2020-06-24 02:41:14
【问题描述】:
我正在开发一个处理员工个人资料的应用程序。
我在一个视图页面中有 3 个表单(都在同一个控制器中),但它只保存第一个表单。当我保存第二种形式时,它会清除第一种和第三种形式的值。
这是我的代码:
观看次数/EMP/索引:
@using (Html.BeginForm("Edit", "EMPs", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="form-group">
<div class="pull-right">
<input type="submit" value="Update" name="personalsubmit" class="btn btn-success" />
</div>
</div>
}
@{ Html.RenderAction("Index", "EMP_REFERENCE", new { id = Model.eMP.lineno });}
@using (Html.BeginForm("Edit", "EMPs", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="form-group">
<div class="pull-right">
<input type="submit" value="Update" name="jobsubmit" class="btn btn-success" />
</div>
</div>
}
@{ Html.RenderAction("Index", "EMP_BENEFITS", new { id = Model.eMP.lineno });}
@using (Html.BeginForm("Edit", "EMPs", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="form-group">
<div class="pull-right">
<input type="submit" value="Update" name="otherssubmit" class="btn btn-success" />
</div>
</div>
}
EMPsController
public ActionResult Edit([Bind(Include = "lineno,EMPNO,IDNO..")] EMP eMP)
{
if (ModelState.IsValid)
{
if (Request.Form["personalsubmit"] != null)
{
db.Entry(eMP).State = EntityState.Modified;
db.SaveChanges();
}
if (Request.Form["jobsubmit"] != null)
{
db.Entry(eMP).State = EntityState.Modified;
db.SaveChanges();
}
if (Request.Form["otherssubmit"] != null)
{
db.Entry(eMP).State = EntityState.Modified;
db.SaveChanges();
}
return Redirect(Request.UrlReferrer.PathAndQuery);
}
return View(eMP);
}
我无法将它们全部放在一个表单中,因为我在它们之间使用了 ajax beginForm 来实现另一种 crud 方法。因为我读过不推荐使用嵌套表单。
有没有办法保存一个表单而不清除其他表单的值?
【问题讨论】:
标签: asp.net-mvc multiple-forms