9.詳細画面作成
編集画面と同じような流れです。
下記はコントローラの詳細画面アクションになります。
// // GET: /Address/Details/5 public ActionResult Details(int id) { // idからレコード抽出 var addresses = (from a in _db.Address where a.address_id == id select a).First(); return View(addresses); }
遷移時アクションは編集画面と同じです。
登録処理がないので、ポスト時のアクションはありません。
次にビュー作成です。
View contentにDetailsと指定してください。
以下ビューのコードです。
<fieldset> <legend>Fields</legend> <div class="display-label">address_id</div> <div class="display-field"><%= Html.Encode(Model.address_id) %></div> <div class="display-label">name</div> <div class="display-field"><%= Html.Encode(Model.name) %></div> ~中略~ </fieldset>
後は不要項目削除、名称修正を行い出来上がりです。
10.削除画面作成
削除画面では、削除対象の状態フラグを「削除状態」とし、 一覧画面に表示させないよう論理削除を行います。
以下削除画面アクションです。
// // GET: /Address/Delete/5 public ActionResult Delete(int id) { // idからレコード抽出 var addresses = (from a in _db.Address where a.address_id == id select a).First(); return View(addresses); } // // POST: /Address/Delete/5 [HttpPost] public ActionResult Delete(int id, FormCollection collection) { try { // idからレコード抽出 var address = (from a in _db.Address where a.address_id == id select a).First(); // 状態フラグを「削除状態」に変更 address.status_flag = "1"; // 住所録更新 UpdateModel(address); _db.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } }
このアプリでは、状態フラグを変更して論理削除を行っていますが、レコードを物理削除したい場合は UpdateModel ではなく _db.DeleteObject を使用します。
※そんな仕様、なかなか無いとは思いますが(笑)
ビューの作成です。
View contentにDeleteと指定してください。
削除ビューのコードは、詳細とほぼ同じなので割愛しますm(_ _)m
後は不要項目削除、名称修正等行い実行します。
削除ボタン押下で一覧画面に戻り、一覧から無事消えていれば完了です。
以上、作成した住所録を簡単な手順でまとめてみました。後はページングやセキュリティ設定等残っておりますが、これらは次の機会にまとめてたいと思っいます。
なお、ページングの実装には以下のサイトが大変参考になりましたm(_ _)m