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