代わりに検討できることの 1 つは、JSON の文字列としてサービスを発行する役割を担うコントローラーをセットアップし、ボタン クリック イベント (jQuery ダイアログを起動する) でそのサービスを呼び出すことです。これを行うには、VS で nuget パッケージとしてダウンロードできるjsonfx (私の個人的なお気に入り) のような JSON シリアライザーの助けが必要です。
たとえば、単一のエンティティを呼び出す場合:
public class ServiceController : Controller
{
public ActionResult GetFoo(FormCollection fc)
{
var json = MyFooGetter(fc["fooId"]); //Id of the object
var writer = new JsonWriter();
return Content(writer.Write(json), "application/json");
}
}
クライアント側では、このサービスを次のようにリクエストします。
$.post("/service/GetFoo", {fooId: "1"}, function (response) {
//Do stuff with your response object which is a traversable JSON version of your entity(ies).
//Example:
var h1 = $("<h1>");
h1.html(response.title);
$("document").append(h1);
});
エンティティ コレクションの別の例:
public class ServiceController : Controller
{
public ActionResult GetFooCollection()
{
var json = MyFooCollectionGetter();
var writer = new JsonWriter();
return Content(writer.Write(json), "application/json");
}
}
クライアント側では、このサービスを次のようにリクエストします。
$.post("/service/GetFooCollection", function (response) {
//Do stuff with your response object which is a traversable JSON version of your entity(ies).
//Example:
$.each(response,function(i){
alert(response[i].title);
});
});
幸運を!