asp.net MVC: сделать Xdocument доступным для jquery? - PullRequest
3 голосов
/ 16 декабря 2009

Может кто-нибудь помочь, у меня есть Xdocument, который открывает XML-файлы на диске и возвращает его в представление asp.net mvc ... Все работает нормально.

Проблема в том, что мне нужно манипулировать данными с помощью jquery, как мне передать эти данные, которые asp.net mvc, в jquery?

вот что у меня есть

 XDocument xdoc = XDocument.Load(Server.MapPath("~/content/xml/items.xml"));
 var test = from f in xdoc.Descendants("categoria") select f;

 return view(test);

В основном xml-файл представляет собой список элементов, поэтому, когда пользователь нажимает на категорию, затем я отображаю что-то в правом столбце, а затем кто-то нажимает на другую категорию, элемент в правом столбце заменяется новыми данными. У меня есть код в jquery / javascript, чтобы сделать это ...

Все эти данные доступны в моем XML-документе. Я могу, конечно, по событию click сделать сообщение на сервер для контроллера и вернуть новые данные .... но я хочу сделать это без любые звонки на сервер

Я думаю, что в основном мне нужно сохранить XML-файл, который у меня есть в asp.net mvc, в переменную javascript, чтобы я мог манипулировать им с помощью jquery ..

Любая помощь действительно ценится

Ответы [ 2 ]

2 голосов
/ 16 декабря 2009

Измените последнюю строку вашего метода контроллера на:

return Json(test);

Очевидно, что если вам все еще нужен оригинальный метод контроллера, создайте новый метод, который возвращает JsonResult для использования вашими клиентами jQuery.

1 голос
/ 18 декабря 2009

Я бы возвратил JSON из вашего контроллера, как предложено @grenade, и затем я бы загрузил его на отдельную HTML-страницу, где вы отображаете и манипулируете этими данными с помощью JavaScript и jQuery.

Этот пример jQuery (с вспомогательным методом MVC) загрузит данные после загрузки страницы:

$(document).ready(function() {
    $.getJSON('<%= Url.Action("JSonActionMethod") %>'), function(data) {
         // Do stuff with loaded JSON data stored in variable 'data'
    });
});

Вам нужно убедиться, что Url.Action () указывает на ваш метод действия, который создает страницу результатов JSON.

Надеюсь, что вы на правильном пути и осмысленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...