をjson_encode:戻るJSONは、私がどうなるいくつかのJSONを返すようにPHPで
return json_encode(array('param1'=>'data1','param2'=>'data2'));
は、私が最も簡単な方法でC#ASP.NET MVC3に相当するものをどのように行うのですか?
をjson_encode:戻るJSONは、私がどうなるいくつかのJSONを返すようにPHPで
return json_encode(array('param1'=>'data1','param2'=>'data2'));
は、私が最も簡単な方法でC#ASP.NET MVC3に相当するものをどのように行うのですか?
フレームワークに組み込まれているJavaScriptSerializerクラスを使用できます。たとえば、次のように
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(new { param1 = "data1", param2 = "data2" });
利回り:
{"param1":"data1","param2":"data2"}
しかし、あなたは、ASP.NET MVC 3でJSONを返すについて話しましたので、あなたが直接オブジェクトを返すと、根底を持つことができるよう、既にビルトイン技術が存在しますインフラストラクチャでこのオブジェクトをJSONにシリアライズして、そのような配管でコードを汚染しないようにします。
たとえばASP.NET MVC 3であなたは、単にJsonResult
を返すコントローラのアクションを記述は:
public ActionResult Foo()
{
// it's an anonymous object but you could have used just any
// view model as you like
var model = new { param1 = "data1", param2 = "data2" };
return Json(model, JsonRequestBehavior.AllowGet);
}
あなたは、もはや配管を心配する必要はありません。 ASP.NET MVCでは、アクション結果を返すコントローラアクションがあり、そのアクション結果にビューモデルを渡します。 JsonResultの場合は、JSON文字列に渡したビューモデルをシリアル化し、さらにContent-Type
応答ヘッダーをapplication/json
に適切に設定することに加えて、基盤となるインフラストラクチャです。
http://www.json.org/(C#のリストを参照)について
私はいつもJSON .NETを使用します。http://json.codeplex.com/ とドキュメント:それはこのようなことがありhttp://james.newtonking.com/projects/json/help/
最も簡単な方法:
public JsonResult GetData()
{
var myList = new List<MyType>();
//populate the list
return Json(myList);
}
IEがGETリクエストをキャッシュについてはかなり積極的であることに注意してください。通常は、[OutputCache]属性が必要です。 – jgauffin