Я работаю над приложением, которое обрабатывает профиль сотрудника.
У меня есть 3 формы (все в одном контроллере) на одной странице просмотра, но она сохраняет только 1-ю форму. И когда я сохраняю 2-ю форму, она очищает значения 1-й и 3-й формы.
Вот мой код:
Просмотры / EMPs / Index:
@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. Поскольку я прочитал, что вложенные формы не рекомендуются.
Есть ли способ сохранить одну форму без очистки значений других форм?