Мы можем вызвать метод 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 и работать соответственно для отображения данных ответа в пользовательском интерфейсе.
Для получения более подробной информации нажмите здесь