Вы можете вернуть JSON.
Например, вы можете сделать Ajax-запрос для следующего действия контроллера:
public JsonResult GetMyData()
{
SomeClass s = new SomeClass();
s.Property1 = "value";
s.Property2 = "another value";
return Json(s, JsonRequestBehavior.AllowGet); //you will need the AllowGet option to return data to a GET request
}
Затем ваш javascript может выполнить Ajax-запрос (используя jQueryФункция Ajax) к контроллеру:
var onSuccess = function (data) {
//data will be your s object, in JSON format
};
$.ajax({
type: 'GET',
url: '/ControllerName/GetMyData/',
success: function (data) { onSuccess(data); }
});
РЕДАКТИРОВАТЬ: При возврате массива или List вам нужно будет добавить к вызову Ajax традиционный: true, например:
var onSuccess = function (data) {
//data will be your s object, in JSON format
};
$.ajax({
type: 'GET',
url: '/ControllerName/GetMyData/',
success: function (data) { onSuccess(data); },
traditional: true
});
Я не уверен на 100%, почему (я уверен, что кто-то нас заполнит), но это дало мне припадки в прошлом.
Еще один РЕДАКТИРОВАТЬ : Вам может понадобиться проанализировать JSON, который должен создать для вас реальный объект Array javascript:
var onSuccess = function (data) {
//data will be your s object, in JSON format
var arr = JSON.parse(data);
};