開発中、私はしばしばこのようなコントローラメソッドを記述します。そのため、モデルの内容が適切に設定され、ビューの開発を助けることができます。パラメータに基づいてASP.NET MVCコントローラのアクションからJSONを返します
public ActionResult SomeMethod(int id, bool asJson = false)
{
var model = SomeBackendService.GetModel(id);
if(asJson)
return Json(model, JsonRequestBehavior.AllowGet);
return View(model);
}
ビューの開発が完了したら変更しますが、後でJSONとして結果を得ることができたらと思っています。
理想的には、コントローラーメソッドを各コントローラーの各メソッドを記録せずにJSONとして要求できるようにするWeb.configキーを設定したいと考えています。私は、特定のクエリ文字列パラメータで要求されたときにJSONとしてモデルを返す次のメソッドを望みます。
public ActionResult SomeMethod(int id)
{
var model = SomeBackendService.GetModel(id);
return View(model);
}
私は自分のビューエンジンを実装することが必要な道のりを推測していますが、それが正しいかどうかはわかりません。
(確かに、このアプローチは、私は並べ替えを取得する方法についての提案を開いてよ...適切なヘッダを追加しません)と 'asJson'移動しますそこに論理。あなたのコントローラーをベースコントローラーから継承させると、そのコントローラーに能力があります。アクションフィルタには別のオプションがあり、ビュー結果からモデルを抽出してjson結果を返すことができます。 – Nkosi
これは単なる開発のためのものであれば、モデルデータをhtmlでレンダリングするヘルパーを開発(または見つけて)、その下のどこかのビューに配置し、web.configのスイッチをオフまたはオンにすることができます。代わりに、モデル集団を専用のメソッドに移動し、モデルアクションをjsonとして返すコントローラアクションを追加することもできます。または、JSONデータを一切見ず、代わりにモデル集団の単体テストを作成してください。 –