2009-09-29 10 views
14

ASP.Net MVCのアクション結果とその使用方法の一覧はありますか?ASP.Net MVCのアクション結果は何ですか?

私は忙しかったけど、ほとんどすべてのアクションを処理していますが、それは正しくないとわかりました。より具体的なアクション結果を使用する必要があります。

私はこれをGoogleで検索しましたが、リストは見つかりませんでした。私たちはWroxの本を買ったばかりですが、配送から1週間以上が経過しています。

自分でロールすることはできますか?それはどこかで文書化されていますか?

答えて

22

System.Web.MvcReflectorで開くと、抽象クラスActionResultから継承した派生型がいくつかあることがわかります。それらは次のとおりです。

System.Web.Mvc.ContentResult 
System.Web.Mvc.EmptyResult 
System.Web.Mvc.FileResult 
    System.Web.Mvc.FileContentResult 
    System.Web.Mvc.FilePathResult 
    System.Web.Mvc.FileStreamResult 
System.Web.Mvc.HttpUnauthorizedResult 
System.Web.Mvc.JavaScriptResult 
System.Web.Mvc.JsonResult 
System.Web.Mvc.RedirectResult 
System.Web.Mvc.RedirectToRouteResult 
System.Web.Mvc.ViewResultBase 
    System.Web.Mvc.PartialViewResult 
    System.Web.Mvc.ViewResult 

はい、抽象クラスActionResultから継承して自分自身をロールすることができます。上のリストのActionResultsの1つ以上をReflectorで調べて、これがどのように行われるかの感触を得ることができます。

ソースコードは、こちらもご覧になれます。

http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471

+0

優れています。ロバートに感謝する。 – griegs

+6

ASP.NET MVCの場合は、ソースが利用可能です。リフレクターを使う方が便利かもしれませんが、ソースに余分な値(コメントなど)があります。 –

+4

ありがとうMarc。それについても見てみましょう。その間、私は自分のActionResultを作成して "Slappy"という言葉を返しました。それは楽しいことでした。 :) ありがとうございます。 – griegs

0

あなたはASP.NET MVC 5のためにこれを探している場合は、リストにHttpStatusCodeResultを追加します。

また、対応するアクション結果を返すヘルパーメソッドの末尾に「結果」という単語がないことにも言及しましょう。たとえば、HttpNotFoundResultを返す場合は、を返します。返信HttpNotFound( "status description");

ActionResult Class page on MSDNには、結果クラスとヘルパーメソッドの完全なリストがあります。

関連する問題