2012-11-02 121 views
8

我有一個jQuery的功能,點擊一個div元素,獲取該元素預定義的ID值。我想要做的是加載父母元素的孩子,所以我打算使用jQuery動態構建一些html。我不知道該怎麼做,是調用一個控制器(ASP.NET MVC 3)並讓控制器將一個集合返回給客戶端。如何從ASP.NET MVC控制器動態獲取數據到jQuery?

我知道如何從JQuery發送JSON對象到控制器,但不是相反。

在此先感謝!

回答

17

這裏是你如何從控制器將數據發送到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); 
} 

Further Reading

+1

所有好的答案,很難挑選一個作爲回答。選擇Yasser作爲進一步的閱讀鏈接特別有幫助,但都讓我朝着正確的方向前進。謝謝大家 –

+0

這個例子中的家庭是什麼? –

+0

@KalaJ home是'HomeController',它只是一個給控制器的名字。 – Yasser

1

您可以使用jQuery的ajax功能和MVC剃刀Url屬性:

$.ajax({ 
    url: '@Url.Action("Home")', 
    type: "GET", 
    success: function (data) { 
     $("my-div").append(data); 
    } 
}); 

成功屬性的值是一個參數的函數:數據。這是您的控制器返回的結果。

3

樣品:

的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)}; 
    } 
相關問題