Мы можем очень просто вызвать метод Controller, используя Javascript / Jquery, следующим образом:
Предположим, что ниже вызывается метод 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' и вызываем метод getJSON API Jquery.
receieveResponse - это функция обратного вызова, получающая ответное или возвращаемое значение метода controllers.
Здесь мы использовали JSON, поскольку мы не можем использовать объект класса C #
непосредственно в функцию javascript, поэтому мы преобразовали результат (arr) в методе контроллера в объект JSON следующим образом:
Json (обр, JsonRequestBehavior.AllowGet);
и вернул этот объект Json.
Теперь в функции обратного вызова Javascript / JQuery мы можем использовать этот результирующий объект JSON и работать соответствующим образом для отображения данных ответа на пользовательском интерфейсе.
Для более подробной информации нажмите здесь