Операции добавления и обновления также могут выполняться с помощью одной формы и одного метода.
Добавить id
как скрытый элемент управления формой, для существующих записей это поле будет иметь значение, которое является идентификатором соответствующей записи. Для новых записей значение по умолчанию будет равно 0 (при условии, что тип идентификатора int).
@using (Html.BeginForm("Save", "MyMainView", FormMethod.Post))
{
....
@Html.HiddenFor(x => x.Id)
<input type="submit" name="submit" value="Save" />
}
на бэкэнд-проверке для значения id
, если оно> 0, вы запускаете обновление, в противном случае - новый рекорд.
[HttpPost]
public IActionResult Save(int IdentifikaceZ, ReklamaceModel model)
{
if(model.Id > 0)
_db.Update(model);
else
_db.Add(model);
_db.SaveChanges();
return RedirectToAction("MyMainView");
}
Это была упрощенная реализация, в реальном проекте вам нужно больше контролировать модель перед добавлением / обновлением. Например, рекомендуется использовать модель ввода, а затем привязать значения к модели db ...
, если вам все еще нужно использовать несколько кнопок отправки в одной форме для таргетинга на различные действия серверной части, см. Множественная отправка Кнопки для стандартной формы, а также ajax форм.