Loading [MathJax]/jax/output/HTML-CSS/config.js

Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

ASP.NET C#

ASP.NETのActionResultの戻り値の種類について

投稿日:2021年7月26日 更新日:

 

<目次>

(1) ASP.NETのActionResultの戻り値の種類について
 (1-1) はじめに
 (1-2) ASP.NETのActionResultの戻り値の種類
 (1-3) ActionResultの戻り値を実際のプログラムでご紹介

(1) ASP.NETのActionResultの戻り値の種類について

(1-1) はじめに

ASP.NET MVCにおける「アクションメソッド」はクライアントからのリクエストに対して、具体的な処理(ビューを返却したり、指定URLにリダイレクトしたり)をする目的のメソッドです。
 
「アクションメソッド」の戻り値はActionResult型(及びその派生クラス)を通じて、処理の結果(次の動作)を返却しますが、本記事ではその種類を紹介します。
 

(1-2) ASP.NETのActionResultの戻り値の種類

ActionResultクラスには派生クラスが複数あり、その分だけ戻り値の種類もあります。以下はその一覧です。
 
(表)ActionResultの戻り値(ActionResultクラスの派生クラス)の種類
●型(クラス) ●ヘルパーメソッド ●概要
ViewResult View() ビューを返却
PartialViewResult PartialView() 部分ビューを返却
ContentResult Content() テキストを返却
RedirectResult Redirect() ユーザーを指定の「URL」にリダイレクト
RedirectToRouteResult RedirectToAction() ユーザーを指定の「アクション」にリダイレクト
JsonResult Json() シリアライズ(※注1)されたJSON形式を返却
(※注1)シリアライズ
オブジェクトを保存したり、メモリやDBやファイルに送る目的で、バイトストリーム(※注2)に変換する事を「シリアライズ」と呼びます。
(※注2)バイトストリーム
アプリケーションとファイル間等でデータを読み書きする際に、連続したバイトとして読み書きするための仮想的なレイヤーです。
HttpNotFoundResult HttpNotFound() 404エラーなどを返却する場合
EmptyResult -(なし) 何も返却する必要がない場合(voidなど)
 

(1-3) ActionResultの戻り値を実際のプログラムでご紹介

ActionResultの戻り値をいくつか実際のプログラムでご紹介します。
 

●ViewResult

ViewResult型の場合は、Viewメソッドを用いて結果を返却します。
 
(アクションメソッド例)
  1. public ViewResult Trend()
  2. {
  3. var textbook = new TextBook() { Name = "Math" };
  4. return View(textbook);
  5. }
 
これを実行すると「TextBooks/Trend」のビュー(Trend.cshtml)が返却されます。
(図121)①
 
TextBooksController.csのTrend()メソッドなので、下図のViews配下⇒TextBooks配下⇒Trend.cshtmlビューを返却します。
(図121)②

●ContentResult

ContentResult型の場合は、Contentメソッドを用いて結果を返却します。
 
(アクションメソッド例)
  1. public ContentResult Trend()
  2. {
  3. return Content("Hello World Rainbow");
  4. }
 
これを実行すると、引数に指定した文字列「”Hello World Rainbow”」が表示されます。
 
(図122)

●RedirectToRouteResult

RedirectToRouteResult型の場合は、RedirectToActionメソッドを用いて結果を返却します。このメソッドは引数を3つ受け取る事ができ、それぞれの意味合いは以下の通りです。
 
(構文)
  1. return RedirectToAction("[action]", "[controller]", [クエリパラメータ]);
(表)
第1引数:アクション リダイレクトする先のコントローラーの「アクション」の名前(コントローラーのメソッド名)を与えます。

(例)
“Trend”

第2引数:コントローラー リダイレクトする先のコントローラーの名前を与えます。

(例)
“TextBooks”

第3引数:クエリパラメータ URLの末尾に付与されるパラメータ(クエリパラメータ)を「匿名型オブジェクト」で渡します(名前の無いオブジェクト)。

(例)
new { subject = “math”, score = 78 }

(アクションメソッド例)
  1. public ActionResult Index()
  2. {
  3. return RedirectToAction("Trend", "TextBooks", new { subject = "math", score = 78 });
  4. }
 
上記の例で実行した際の処理フローは次の図のようになります。まず、初期画面は「Home」コントローラーの「Index」アクションですが、この「Index」アクション内で「RedirectToAction」メソッドを実行しており、今後は「TextBooks」コントローラーの「Trend」アクションにリダイレクトしています。結果としてリダイレクト先のビューが表示されている事が、結果画面のURLから確認できます。
 
(図123)①処理フローイメージ

(図123)②実行結果例

●HttpNotFoundResult

HttpNotFoundResult型の場合は、HttpNotFoundメソッドを用いて結果を返却します。

(アクションメソッド例)

  1.  
  2. public HttpNotFoundResult Trend()
  3. {
  4. return HttpNotFound();
  5. }
これを実行すると404エラーが返却されました。

(図124)

●EmptyResult

EmptyResult型の場合はヘルパーメソッドが無いため、EmptyResultクラスのインスタンスを返却します。
(アクションメソッド例)
 
  1. public EmptyResult Trend()
  2. {
  3. return new EmptyResult();
  4. }
 
これを実行すると空のページが返却されました。

(図125)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-ASP.NET, C#

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

.NETで「SystemInvalidOperationException」例外(ZombieCheck、Rollback)の調査記録

<目次> (1) .NETで「SystemInvalidOperationException」例外(ZombieCheck、Rollback)の調査記録  (1-1) エラーメッセージ  (1-2) …

C#で「CS0518: 定義済みの型 ‘System.Range’は定義、またはインポートされていません」エラーが出た時の原因と対処

  <目次> (1) C#で「CS0518: 定義済みの型 ‘System.Range’は定義、またはインポートされていません」エラーが出た時の原因と対処  (1-1 …

ASP.NET MVCでformをSubmitする方法

<目次> (1) ASP.NET MVCでformをSubmitする方法  (1-1) 概要  (1-2) HTMLを使ってformをsubmitする方法  (1-3) サンプルプログラム  (1-4 …

Entity Frameworkの使い方や導入手順をご紹介

  <目次> (1) Entity Frameworkの使い方や導入手順をご紹介  (1-1) 前提条件  (1-2) STEP0:ASP:NET MVCプロジェクトの準備  (1-3) S …

C#のvarとは?型を調べる方法や制約事項についてもご紹介

<目次> (1) C#のvarとは?型を調べる方法や制約事項についてもご紹介  (1-1) C#のvarとは?  (1-2) サンプルプログラム:varの基本動作確認#1  (1-3) サンプルプログ …

  • English (United States)
  • 日本語
S