「JsonResult クラス (System.Web.Mvc)」を編集中

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

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

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

最新版 編集中の文章
32行目: 32行目:
 
}
 
}
 
</source>
 
</source>
 
== 似たような実装例 ==
 
JsonRequestBehavior.AllowGetが面倒なので[[DynamicJson]]で実装してみた。
 
とくに意味はない。
 
 
なんかよくわからないけど、[[契約による設計]]([[System.Diagnostics.Contracts 名前空間]])を使ってみたかった。
 
とくに意味はない。
 
 
<source lang="csharp">
 
using System;
 
using System.Text;
 
using System.Web;
 
using System.Web.Mvc;
 
using System.Diagnostics.Contracts;
 
using Codeplex.Data;// DynamicJson
 
 
public class JsonResult2 : ActionResult
 
{
 
    public static readonly string ContentTypeDefault = "application/json";
 
 
    public string ContentType { get; set; }
 
    public Encoding ContentEncoding { get; set; }
 
    public object Data { get; set; }
 
 
    public JsonResult2()
 
    {
 
    }
 
 
    public JsonResult2(object data)
 
    {
 
        this.ContentEncoding = null;
 
        this.Data = data;
 
    }
 
 
    public override void ExecuteResult(ControllerContext context)
 
    {
 
        // 契約による設計:事前条件
 
        Contract.Requires(context != null);
 
 
        // 実装
 
        HttpResponseBase response = context.HttpContext.Response;
 
        if (string.IsNullOrEmpty(this.ContentType))
 
        {
 
            response.ContentType = ContentTypeDefault;
 
        }
 
        else
 
        {
 
            response.ContentType = this.ContentType;
 
        }
 
 
        if (this.ContentEncoding != null)
 
        {
 
            response.ContentEncoding = this.ContentEncoding;
 
        }
 
 
        // DynamicJSONでシリアライズ
 
        string json = DynamicJson.Serialize(this.Data);
 
        response.Output.Write(json);
 
    }
 
}
 
</source>
 
 
== XmlResultクラス ==
 
[[ASP.NET MVC]]にはJsonResultクラスが標準であるのに何故かXmlResultクラスがない。当然、誰もが疑問に思うところなようで[[ASP.NET MVC]]向けのライブラリを作っているオープンソースプロジェクトの[[MvcContrib]]がXmlResultクラスを提供している。
 
* http://mvccontrib.codeplex.com/
 
  
 
== 関連項目 ==
 
== 関連項目 ==

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

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

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

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

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