我们可以很方便地使用Javascript/Jquery调用Controller方法,如下:
假设以下是要调用的 Controller 方法,该方法返回一些类对象的数组。设类为'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);
}
下面是复杂类型(类)
public class A
{
public string property1 {get ; set ;}
public string property2 {get ; set ;}
}
现在轮到 JQUERY 调用上面的控制器方法了。以下是调用控制器方法的Jquery函数。
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);
}
}
}
在上面的 Jquery 函数 'callControllerMethod' 中,我们开发了控制器方法 url 并将其放在一个名为 'strMehodUrl' 的变量中,并调用 Jquery API 的 getJSON 方法。
receieveResponse 是接收控制器方法的响应或返回值的回调函数。
这里我们使用了 JSON ,因为我们不能使用 C# 类对象
直接进入javascript函数,所以我们将controller方法中的结果(arr)转换成JSON对象如下:
Json(arr , JsonRequestBehavior.AllowGet);
并返回该 Json 对象。
现在在 Javascript / JQuery 的回调函数中,我们可以利用这个结果 JSON 对象并相应地在 UI 上显示响应数据。
更多详情 click here