Я начал с лесов, которые VS MVC 5 может создать, и он работает нормально, но я хотел иметь возможность удалять записи («Интервью» в этом случае) со страницы сведений ,MVC5 One Click Удалить из подробностей Страница
Я начал с копирования разметки с кнопки удаления на странице «Удалить» до «Детали», но просто перенаправил бы на действие «Подробности». Как я могу получить кнопку на странице сведений, чтобы запустить метод DeleteConfirmed?
Вот соответствующий код из контроллера:
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Interview interview = db.Interviews.Find(id);
if (interview == null)
{
return HttpNotFound();
}
return View(interview);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Interview interview = db.Interviews.Find(id);
db.Interviews.Remove(interview);
db.SaveChanges();
return RedirectToAction("Index");
}
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Interview interview = db.Interviews.Find(id);
if (interview == null)
{
return HttpNotFound();
}
return View(interview);
}
и вот разметки, который я скопировал с Удалить страницу и поместить в Подробный вид:
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-danger" />
</div>
}
Здесь является наценкой, необходимой мне для ее работы:
@using (Html.BeginForm("Delete", "Interviews", new { id = Model.ID })) {
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-danger" />
</div>
}
Хотя это делает на самом деле пост в действие Удалить (псевдоним DeleteConfirmed) не будет размещать какие-либо данные, , поэтому id будет null ... –
Право. Я не обращал внимания на фактическое содержимое формы. Код работает в представлении 'Удалить', потому что это просто обратная ссылка на URL-адрес удаления, который уже содержит идентификатор. Поскольку вы указываете URL-адрес для публикации здесь явно, идентификатор должен быть включен. Кроме того, вы также можете использовать скрытый ввод с идентификатором в форме. В любом случае это сработает. –
Спасибо, это сработало. Подпись для этого метода также должна включать имя контроллера, но вы получили от меня большую часть пути. Я обновляю свой пост с окончательной разметкой. – cspyr0