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

●ContentResult

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

●RedirectToRouteResult

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

(例)
“Trend”

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

(例)
“TextBooks”

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

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

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

(図123)②実行結果例

●HttpNotFoundResult

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

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

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

(図124)

●EmptyResult

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

(図125)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-ASP.NET, C#

執筆者:


comment

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

関連記事

ASP.NETでビュー(View)に複数のモデル(Model)を連携する方法

  <目次> (1) ASP.NETでビュー(View)に複数のモデル(Model)を連携する方法  (1-1) やりたい事の整理  (1-2) ViewModelを使った複数モデルの連携 …

BundleConfig.csの設定および記述方法について

  <目次> (1) BundleConfig.csの設定および記述方法について  (1-1) BundleConfig.csの設定および記述方法について  (1-2) BundleConf …

C#でNLogライブラリを用いてログ出力を行う方法

<目次> (1) C#でNLogライブラリを用いてログ出力を行う方法  (1-1) NLogの概要  (1-2) NLogの導入手順  (1-3) NLogの初期実装手順  (1-4) NLogのサン …

C#のDB接続時のエラー(provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)

<目次> (1) 記事の目的  (1-1) エラー概要  (1-2) エラー原因  (1-3) エラー対策   (1-3-1) SQLServer:リモート接続を有効化   (1-3-2) SQLSe …

Xamarin.Formsのプロジェクトの構成について~各ファイルの役割や概要について~

<目次> (1) Xamarin.Formsのプロジェクトの構成について  (1-1) プロジェクト構造の概要  (1-2) プロジェクトの初期ファイルの一覧 (1) Xamarin.Formsのプロ …

  • English (United States)
  • 日本語
Top