会社という「体」は色々な要素で構成されています。  「顔」であるホームページ作成、「手足」となるスタッフを効率良く動かすための「神経信号」となる「共有ツール」、「エネルギー」である資金を管理するための「会計ツール」etc...  そんな「体をメンテナンス」についてお手伝いをするのが、私たちの務めです。
ASP.NET MVCを使ってみました その5

ASP.NET MVCを使ってみました その5

 

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

ASP.NET MVCでページャの表示 – Usa*Usa日記

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください