asp.Netmvc 3.0知識点整理-----(2).ControllerのいくつかのAction戻りタイプの比較
9384 ワード
学習により,Controllerでは多くの異なるAction戻りタイプが提供されていることが分かった.では、具体的に彼らはどんな役割を果たしているのでしょうか.それらの使い方と違いは何ですか?資料書の紹介とネット上の資料の検索を通じて、ここでは皆さんに列挙と大まかな要約をあげます.
(1). ActionResult(base):最も基本的なActionタイプで、他のタイプを返してActionResultと書くことができます.
(2). ContentResult:ContentResultユーザー定義のコンテンツタイプを返します.
ページ出力「Test Content」このタイプはajax操作で返す必要があるテキストの内容に多く使用されます.JavaScriptスクリプト(「text/javascript」)やCSSスタイル(「text/css」)などを追加したり、スタイルやjsなどを変更したりすることもできます.
(3). EmptyResult:NullまたはVoidデータ型のEmptyResultを返します.
結果はNULLを返します.
(4). HttpUnauthorizedResult:クライアントエラーコード401に応答して(権限のないブラウズステータス)、プログラムがForms認証を有効にし、クライアントに身分証明書がない場合、指定したログインページにジャンプします.
(5).JavaScriptResult:JavaScriptResultがクライアントで実行できるスクリプトを返します.
ただし、ここではポップアップウィンドウに直接応答するわけではありません.ページでもう一度呼び出す必要があります.
これは、異なる論理に基づいて異なるjs操作を容易に実行することができる.
(6). JsonResult:JsonResultシーケンス化されたJsonオブジェクトを返します.
主にjson形式のオブジェクトを返すために使用され、ajaxで操作できます.
注意:パラメータを設定する必要があります.AllowGet.
それ以外の場合は、GETリクエストで使用すると、サードパーティのWebサイトに機密情報が漏れるため、エラーが発生します.
GETリクエストを許可するには、JsonRequestBehaviorをAllowGetに設定します.
(7). FileResult(base):FileResultが応答に書き込むバイナリ出力を返し、簡単にダウンロードする機能として一般的に使用できます.
直接testをダウンロードします.zipをローカルに保存すると「ファイル表示名.zip」になります.
(8).FileContentResult:現在のHttpResponseのOutputStreamプロパティを呼び出すWriteメソッドだけで、ファイルコンテンツを表すバイト配列を応答出力ストリームに直接書き込みます.
(9). FilePathResult:物理ファイルパスに基づいてFileResultを作成します.
(10). FileStreamResult:ファイルの内容を読み込むストリームを使用してFileResultを作成できます.
PS:Fileのいくつかの戻りタイプの詳細については、園友蒋金楠の博文「ASPについてNET MVCのいくつかのActionResultの本質:FileResult」を参考に、すでに詳しく書いてあります.
(11). RedirectResult:指定したurlアドレスに直接移動します.
(12). RedirectToRouteResult:ActionNameを直接使用してジャンプするか、ControllerNameおよびパラメータを追加できます.
(13). RedirectToActionResult:ジャンプするルーティングを指定します.
ただし、Defaultはglobalである.asax.csで定義されたルーティング名.
(14). ViewResultBase(base)
(15). ViewResult:ビューの結果を返し、Webページに表示します.
(
16). PartialViewResult:PartialViewResultの一部のビューの結果を返します.主に一部のビューの内容を返します.
View/Sharedディレクトリの下にViewUserControlを作成します.cshtml部分ビュー.
ページ呼び出し@ViewBag.Messageは「部分ビュー」を出力します.
まとめ:これらの戻りタイプの共通点は、Actionに一定の要求があることです.はpublicメソッド である必要があります.は、インスタンスメソッド である必要がある.は、 をリロードすることはできない. ActionResultタイプ を返す必要があります.
(1). ActionResult(base):最も基本的なActionタイプで、他のタイプを返してActionResultと書くことができます.
(2). ContentResult:ContentResultユーザー定義のコンテンツタイプを返します.
public ActionResult Content()
{
return Content("Test Content", "text/html"); //
}
ページ出力「Test Content」このタイプはajax操作で返す必要があるテキストの内容に多く使用されます.JavaScriptスクリプト(「text/javascript」)やCSSスタイル(「text/css」)などを追加したり、スタイルやjsなどを変更したりすることもできます.
(3). EmptyResult:NullまたはVoidデータ型のEmptyResultを返します.
public ActionResult Empty()
{
return null;
}
結果はNULLを返します.
(4). HttpUnauthorizedResult:クライアントエラーコード401に応答して(権限のないブラウズステータス)、プログラムがForms認証を有効にし、クライアントに身分証明書がない場合、指定したログインページにジャンプします.
public ActionResult HttpUnauthorizedResult()
{
return new HttpUnauthorizedResult();
}
(5).JavaScriptResult:JavaScriptResultがクライアントで実行できるスクリプトを返します.
public ActionResult JavaScript()
{
string str = string.Format("alert('{0}');", " ");
return JavaScript(str);
}
ただし、ここではポップアップウィンドウに直接応答するわけではありません.ページでもう一度呼び出す必要があります.
これは、異なる論理に基づいて異なるjs操作を容易に実行することができる.
(6). JsonResult:JsonResultシーケンス化されたJsonオブジェクトを返します.
public ActionResult Json()
{
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("id", 100);
dic.Add("name", "hello");
return Json(dic, JsonRequestBehavior.AllowGet);
}
主にjson形式のオブジェクトを返すために使用され、ajaxで操作できます.
注意:パラメータを設定する必要があります.AllowGet.
それ以外の場合は、GETリクエストで使用すると、サードパーティのWebサイトに機密情報が漏れるため、エラーが発生します.
GETリクエストを許可するには、JsonRequestBehaviorをAllowGetに設定します.
(7). FileResult(base):FileResultが応答に書き込むバイナリ出力を返し、簡単にダウンロードする機能として一般的に使用できます.
public ActionResult File()
{
string fileName = "~/Content/test.zip"; //
string downFileName = " .zip"; //
return File(fileName, "application/octet-stream", downFileName);
}
直接testをダウンロードします.zipをローカルに保存すると「ファイル表示名.zip」になります.
(8).FileContentResult:現在のHttpResponseのOutputStreamプロパティを呼び出すWriteメソッドだけで、ファイルコンテンツを表すバイト配列を応答出力ストリームに直接書き込みます.
(9). FilePathResult:物理ファイルパスに基づいてFileResultを作成します.
(10). FileStreamResult:ファイルの内容を読み込むストリームを使用してFileResultを作成できます.
PS:Fileのいくつかの戻りタイプの詳細については、園友蒋金楠の博文「ASPについてNET MVCのいくつかのActionResultの本質:FileResult」を参考に、すでに詳しく書いてあります.
(11). RedirectResult:指定したurlアドレスに直接移動します.
public ActionResult Redirect()
{
// url
return Redirect("http://www.cnblogs.com");
}
(12). RedirectToRouteResult:ActionNameを直接使用してジャンプするか、ControllerNameおよびパラメータを追加できます.
public ActionResult RedirectResult()
{
return RedirectToAction("Index", "Home", new { id = "100", name = "liu" });
}
(13). RedirectToActionResult:ジャンプするルーティングを指定します.
public ActionResult RedirectRouteResult()
{
return RedirectToRoute("Default", new { controller = "Home", action = "Index"});
}
ただし、Defaultはglobalである.asax.csで定義されたルーティング名.
(14). ViewResultBase(base)
(15). ViewResult:ビューの結果を返し、Webページに表示します.
public ActionResult About()
{
return View(); // model
}
(
16). PartialViewResult:PartialViewResultの一部のビューの結果を返します.主に一部のビューの内容を返します.
View/Sharedディレクトリの下にViewUserControlを作成します.cshtml部分ビュー.
public ActionResult UserControl()
{
ViewBag.Message = " ";
return PartialView("ViewUserControl");
}
ページ呼び出し@ViewBag.Messageは「部分ビュー」を出力します.
まとめ:これらの戻りタイプの共通点は、Actionに一定の要求があることです.