JSON または部分的な HTML を返す ASP.NET MVC コントローラー アクション 質問する

JSON または部分的な HTML を返す ASP.NET MVC コントローラー アクション 質問する

パラメータに応じて JSON または部分的な HTML を返すコントローラー アクションを作成しようとしています。結果を MVC ページに非同期的に返す最適な方法は何ですか?

ベストアンサー1

アクション メソッドで、JSON(object) を返して、ページに JSON を返します。

public ActionResult SomeActionMethod() {
  return Json(new {foo="bar", baz="Blech"});
}

次に、Ajaxを使用してアクションメソッドを呼び出します。ViewPageのヘルパーメソッドの1つを使用できます。

<%= Ajax.ActionLink("SomeActionMethod", new AjaxOptions {OnSuccess="somemethod"}) %>

SomeMethod は、返された Json オブジェクトを評価する JavaScript メソッドになります。

プレーンな文字列を返したい場合は、ContentResult を使用できます。

public ActionResult SomeActionMethod() {
    return Content("hello world!");
}

ContentResult は、デフォルトで contentType として text/plain を返します。
これはオーバーロード可能なので、次のようにすることもできます。

return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");

おすすめ記事