Chúng ta có thể gọi phương thức điều khiển sử dụng Javascript/Jquery rất dễ dàng như sau:
Giả sử sau đây là phương pháp điều khiển được gọi là trả lại một mảng của một số đối tượng lớp. Hãy để cho lớp là 'A'
public JsonResult SubMenu_Click(string param1, string param2)
{
A[] arr = null;
try
{
Processing...
Get Result and fill arr.
}
catch { }
return Json(arr , JsonRequestBehavior.AllowGet);
}
Tiếp theo là loại phức tạp (class)
public class A
{
public string property1 {get ; set ;}
public string property2 {get ; set ;}
}
Bây giờ nó đã được chuyển sang gọi trên phương pháp điều khiển bằng jQuery. Sau đây là hàm Jquery để gọi phương thức điều khiển.
function callControllerMethod(value1 , value2) {
var strMethodUrl = '@Url.Action("SubMenu_Click", "Home")?param1=value1 ¶m2=value2'
$.getJSON(strMethodUrl, receieveResponse);
}
function receieveResponse(response) {
if (response != null) {
for (var i = 0; i < response.length; i++) {
alert(response[i].property1);
}
}
}
Ở phía trên chức năng Jquery 'callControllerMethod' chúng tôi phát triển bộ điều khiển phương pháp url và đưa rằng trong một biến có tên là 'strMehodUrl' và gọi phương thức getJSON của Jquery API.
receieveResponse là hàm gọi lại nhận giá trị trả về hoặc trả về của phương thức bộ điều khiển.
Ở đây chúng ta đã sử dụng JSON, vì chúng ta không thể tận dụng các đối tượng C# lớp
trực tiếp vào chức năng javascript, vì vậy chúng tôi chuyển đổi kết quả (arr) trong phương pháp điều khiển vào đối tượng JSON như sau:
Json (arr, JsonRequestBehavior.AllowGet);
và trả lại đối tượng Json đó.
Bây giờ trong chức năng gọi lại của Javascript/JQuery, chúng tôi có thể sử dụng đối tượng JSON kết quả này và làm việc phù hợp để hiển thị dữ liệu phản hồi trên giao diện người dùng.
Đối detaill hơn click here
Vì vậy, tôi đã thực hiện điều này:. $ ('# refreshGrid') tải ('?/Client/GetAttachments id =' + ClientId); khiển Khách hàng của tôi trông như thế này: GetAttachments public ActionResult (int id) { // Một số logic ... trở PartialView ("~/Views/Client/ClientAttachmentGridView.ascx", tác phẩm); } cảnh báo ($ ('# refreshGrid')) đang cho tôi một đối tượng và cảnh báo (clientID) cung cấp cho tôi những gì tôi mong đợi. Bộ điều khiển không nhận được hit (nếu không tôi sẽ thấy một số cuộc gọi dịch vụ web từ fiddler). Điều gây phiền nhiễu là tôi không thấy bất kỳ thông báo lỗi nào. – RailRhoad
Oooh, tôi lấy lại. Tôi nhận được 500 trong fiddler: Từ điển tham số chứa một mục nhập rỗng cho tham số 'id' của kiểu không nullable 'System.Int32' cho phương thức 'System.Web.Mvc.ActionResult GetAttachments (Int32)' trong 'CommercialLendingPlatform .Controllers.ClientController '. Để tạo một tham số, kiểu tùy chọn của nó phải là kiểu tham chiếu hoặc kiểu Nullable.
Tên thông số: tham số – RailRhoad
Tuyệt vời! Tôi cần phải thay đổi Client/GetAttachments/clientID! Quên về định tuyến url trong một giây. Cảm ơn mọi người! – RailRhoad