2012-11-02 61 views
8

Tôi có một chức năng jQuery mà trên nhấp chuột của một phần tử div, được rằng các yếu tố được xác định trước giá trị ID. Những gì tôi muốn làm là tải rằng các phần tử cha mẹ, vì vậy tôi đang lập kế hoạch để tự động xây dựng một số html bằng cách sử dụng jQuery. Những gì tôi không biết làm thế nào để làm, là thực hiện cuộc gọi đến một bộ điều khiển (ASP.NET MVC 3) và có bộ điều khiển trả lại một bộ sưu tập cho khách hàng.Làm cách nào để lấy dữ liệu từ bộ điều khiển ASP.NET MVC đến jQuery động?

Tôi biết cách gửi đối tượng JSON từ jQuery tới bộ điều khiển, nhưng không phải cách khác.

Cảm ơn trước!

Trả lời

17

Đây là mã cho cách bạn gửi dữ liệu từ bộ điều khiển để json:

$.ajax({ 
    url: '@Url.Action("GetData", "Home")', 
    type: "GET", 
    success: function (result) { 
     $("#somediv").append(result.FirstName); 
     $("#somediv").append(result.LastName); 
     $("#somediv").append(result.Age); 
    } 
}); 

Hãy xem xét một lớp như hình dưới đây ....

public class User 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

hành động của bạn sẽ trông như thế này.

public JsonResult GetData() 
{ 
    User user = new User(); 
    user.FirstName = "Yasser"; 
    user.LastName = "Shaikh"; 
    user.Age = 100; 

    return Json(user, JsonRequestBehavior.AllowGet); 
} 

Further Reading

+1

Tất cả các câu trả lời tốt, khó có thể chọn một như một câu trả lời. Chọn Yasser là liên kết đọc thêm đặc biệt hữu ích, nhưng tất cả đã cho tôi đi đúng hướng. Cảm ơn tất cả các bạn –

+0

Trang chủ trong ví dụ này là gì? –

+0

@KalaJ home là 'HomeController' chỉ là tên được đặt cho bộ điều khiển. – Yasser

1

Bạn có thể tận dụng các jquery ajax chức năng và MVC Razor Url tài sản:

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

Giá trị của bất động sản thành công là một chức năng với một đối số: dữ liệu. Đây là kết quả của những gì được trả về từ bộ điều khiển của bạn.

3

mẫu:

Javascript:

$.ajax({ 
     type: 'POST', 
     url: '@(Url.Action("SomeAction", "SomeController"))', 
     data: someInputData, 
     error: OnErrorFunction, 
     success: function (data, textStatus, XMLHttpRequest) { 
      alert(JSON.stringify(data)); 
     }, 
     dataType: "json" 
    }); 

Bộ điều khiển:

public ActionResult SomeAction(InputDataType someInputData) 
    { 
     if (someInputData== null) 
      return null; 
     return new JsonResult {Data = SomeOutputData(someInputData)}; 
    } 
Các vấn đề liên quan