div要素をクリックすると、その要素に事前定義されたID値を取得するjQuery関数があります。私がやりたいのは、その親要素の子をロードすることなので、jQueryを使用して動的にHTMLを構築することを計画しています。方法がわからないのは、コントローラー(ASP.NET MVC 3)を呼び出して、コントローラーにコレクションをクライアントに返させることです。
JSONオブジェクトをjQueryからコントローラーに送信する方法は知っていますが、その逆はありません。
前もって感謝します!
div要素をクリックすると、その要素に事前定義されたID値を取得するjQuery関数があります。私がやりたいのは、その親要素の子をロードすることなので、jQueryを使用して動的にHTMLを構築することを計画しています。方法がわからないのは、コントローラー(ASP.NET MVC 3)を呼び出して、コントローラーにコレクションをクライアントに返させることです。
JSONオブジェクトをjQueryからコントローラーに送信する方法は知っていますが、その逆はありません。
前もって感謝します!
Controllerからjsonにデータを送信する方法のコードは次のとおりです。
$.ajax({
url: '@Url.Action("GetData", "Home")',
type: "GET",
success: function (result) {
$("#somediv").append(result.FirstName);
$("#somediv").append(result.LastName);
$("#somediv").append(result.Age);
}
});
以下のようなクラスを考えてみましょう。
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
アクションは次のようになります。
public JsonResult GetData()
{
User user = new User();
user.FirstName = "Yasser";
user.LastName = "Shaikh";
user.Age = 100;
return Json(user, JsonRequestBehavior.AllowGet);
}
サンプル:
Javascript:
$.ajax({
type: 'POST',
url: '@(Url.Action("SomeAction", "SomeController"))',
data: someInputData,
error: OnErrorFunction,
success: function (data, textStatus, XMLHttpRequest) {
alert(JSON.stringify(data));
},
dataType: "json"
});
コントローラ:
public ActionResult SomeAction(InputDataType someInputData)
{
if (someInputData== null)
return null;
return new JsonResult {Data = SomeOutputData(someInputData)};
}
jqueryajax
関数とMVCRazorUrl
プロパティを利用できます。
$.ajax({
url: '@Url.Action("Home")',
type: "GET",
success: function (data) {
$("my-div").append(data);
}
});
successプロパティの値は、 dataという1つの引数を持つ関数です。これは、コントローラーから返されたものの結果です。