「ASP.NET MVC/アクション」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
[[ASP.NET MVC]]の'''アクション'''とは、[[フロントコントローラー]]から呼び出されるコントローラークラス(「[[Controller クラス (System.Web.Mvc)]]」の派生クラス)のメソッドのことで、ASP.NET MVCのコントローラーのうち、[[プログラマー]]が記述する部分をさす。
+
[[ASP.NET MVC]]の'''アクション'''とは、フロントコントローラーから呼び出されるコントローラークラスのメソッドのことである。コントローラーのうち、プログラマーが記述する部分を指す。
 
 
アクション(コントローラークラス内のメソッド)を記述するためのコントローラークラス自体は「[[Controller クラス (System.Web.Mvc)]]」を継承して作成する。
 
<source lang="csharp">
 
    using System.Web.Mvc;
 
 
 
    // コントローラークラスの
 
    public class HomeController : Controller
 
    {
 
        // アクション(メソッド)
 
        public ActionResult Index()
 
        {
 
            return View();
 
        }
 
    }
 
</source>
 
  
 
== フォルダー構成 ==
 
== フォルダー構成 ==
[[ASP.NET MVC]]では、「Controllers」ディレクトリ以下にコントローラークラスを格納することになっている。
+
ASP.NET MVCでは「Controllers」ディレクトリ以下にコントローラークラスを格納することになっている。
 
 
== 戻り値 ==
 
[[ASP.NET MVC]]のアクションは必ず[[ActionResultクラス]]のインスタンスを返すことになっている。
 
標準で用意されているActionResultから派生したクラスの種類などの、詳細は「[[ActionResult クラス (System.Web.Mvc)]]」を参照。
 
  
 
== MVC ==
 
== MVC ==
[[MVC]]の原則に従えば、[[コントローラー]]は[[モデル]]と[[ビュー]]を繋ぐのが主目的なので、コントローラーアクションにはモデルからデータを取得し、適切なビューに橋渡しする処理のみを書く。たとえば[[PC]]と[[スマートフォン]]でビューを切り替えるなどの[[ビジネスロジック]]でも[[HTML]]の生成でもない、あくまで連結器としての機能のみを[[コントローラークラス]]に書いておく。
+
MVCの原則に従えば、コントローラーはモデルとビューを繋ぐのが主目的なので、コントローラーアクションにはモデルからデータを取得し、適切なビューに橋渡しする処理のみを書く。たとえばPCとスマートフォンでビューを切り替えるなどのビジネスロジックでもHTMLの生成でもない連結器としての機能を書いておく。
  
コントローラーにビジネスロジックを書いてはいけない。書けないわけではなく、「書くな」という決まり事であり、書けるし、書いた方が手っ取り早いし、書いている人も多いが、サイトが肥大化したときに[[スパゲッティ]]になるよね、ということらしい。
+
ここにビジネスロジックを書いてはいけない。書けないわけではなく、「書くな」という決まり事であり、書けるし、書いた方が手っ取り早いが、サイトが肥大化したときにスパゲッティになるよねということらしい。
  
 
=== 悪い例 ===
 
=== 悪い例 ===
HomeコントローラークラスのIndexアクション(Indexメソッド)内にビジネスロジックを記述してある。
+
コントローラークラスのアクション(Indexメソッド)内にビジネスロジックを記述してある。
 
<source lang="csharp">
 
<source lang="csharp">
 
// Controllers/HomeController.cs
 
// Controllers/HomeController.cs
41行目: 22行目:
 
     }
 
     }
 
</source>
 
</source>
 
 
=== 良い例 ===
 
=== 良い例 ===
モデルでデータを管理する。
 
 
<source lang="csharp">
 
<source lang="csharp">
 
// Models/HelloModel.cs
 
// Models/HelloModel.cs
54行目: 33行目:
 
     }
 
     }
 
</source>
 
</source>
コントローラークラスのアクションは、モデルからデータを取得し、ビューに橋渡しをする。
 
 
<source lang="csharp">
 
<source lang="csharp">
 
// Controllers/HomeController.cs
 
// Controllers/HomeController.cs
66行目: 44行目:
 
     }
 
     }
 
</source>
 
</source>
 
== 関連項目 ==
 
* [[ActionResult クラス (System.Web.Mvc)]] - アクションの戻り値
 
* [[ASP.NET MVC]]
 
 
== 参考文献 ==
 
<references />
 
 
== 外部リンク ==
 
 
{{stub}}
 

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: