私は MVC 3 を使用しています。DB 内の要素を削除するビューがあります。サービス層は、操作を承認する前に、すべてのロジックが整っていることを確認します。役割違反の場合、メッセージが Html.Summary に表示されるため、削除操作は中止されます。
私の問題は、サービス層からの Html.Summary のメッセージがビューに到着すると、さまざまなフィールドのデータが失われるため、アイテムの ID、名前、および説明が表示されないことです。
正しい方向に私を指摘できますか?私が間違っていることは何ですか?ありがとう
public ActionResult Delete(int id)
{
Typology typology = _typologytService.FindById(id);
TypologyDeleteViewModel deleteViewModel = Mapper.Map<Typology, TypologyDeleteViewModel>(typology);
return View(deleteViewModel);
}
//
// POST: /ManageTypologies/Delete/5
[HttpPost]
public ActionResult Delete(TypologyDeleteViewModel deleteViewModel)
{
if (ModelState.IsValid)
{
Typology typology = Mapper.Map<TypologyDeleteViewModel, Typology>(deleteViewModel);
_typologytService.Delete(typology.TypologyId);
if (ModelState.IsValid)
return RedirectToAction("Index");
}
return View();
}
@model xxx.ViewModels.TypologyDeleteViewModel
@{
ViewBag.Title = "Delete";
}
<h2>
Delete</h2>
<h3>
Are you sure you want to delete this?</h3>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.TypologyId)
<fieldset>
<legend>TypologyDeleteViewModel</legend>
<div class="display-label">
TypologyId</div>
<div class="display-field">
@Html.DisplayFor(model => model.TypologyId)
</div>
<div class="display-label">
Name</div>
<div class="display-field">
@Html.DisplayFor(model => model.Name)
</div>
<div class="display-label">
Description</div>
<div class="display-field">
@Html.DisplayFor(model => model.Description)
</div>
<p>
<input type="submit" value="Delete" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>