Какой лучший способ показать частичное представление о результатах JQuery вызова JSON - PullRequest
0 голосов
/ 08 февраля 2010

У меня есть представление asp.net mvc, где в верхней части страницы находится таблица. Я хочу щелкнуть строку в таблице, которая перейдет на сервер и получить подробную информацию об этой таблице. Это работает нормально, и я возвращаю детали в Json.

Проблема в том, что я знаю, что хочу показать панель подробностей ниже. Прямо сейчас у меня есть панель с деталями, полная в частичном представлении.

Как бы я "подключил это" с помощью jquery, чтобы при щелчке по строке отображалась панель сведений с правильными заполненными данными модели.

  1. Могу ли я отказаться от json и просто сгенерировать html в своем действии контроллера и вернуть html в представление для отображения панели сведений?
  2. Другие лучшие практики или предложения здесь?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2010

Я предполагаю, что вы используете помощников MVC Ajax для вызова контроллера, чтобы получить результат JSon?

Альтернативой этому было бы использование JQuery для вызова вашего контроллера JSon. Таким образом, по ссылке или нажатию кнопки вы можете вызвать некоторый javascript, который найдет идентификатор, который вам нужно передать контроллеру из скрытого тега. Когда вы получаете результаты JSon обратно, вы просто устанавливаете свойства тега html и показываете / скрываете свою панель сведений. Примерно так:

function ShowPartial() {
  var ID = $("#hiddenValue").attr("value");
    $.getJSON("YourUrl" + ID, function(result) {
        $.each(result, function(item) {
          // Set you html properties using this["JSonPropertyName"]
        });
    });
}

Альтернативой является простое использование помощников MVC Ajax и обновление тега div с представлением частичных сведений, а не использование JSon.

0 голосов
/ 08 февраля 2010

Я хотел бы использовать шаблонный движок на стороне клиента, такой как jtemplates (плагин jquery) для обработки этой клиентской стороны. Вы можете просто вернуть частичное представление из действия контроллера и отобразить этот HTML-файл там, где вы хотите, на странице. Но я считаю плохой практикой возвращать html из ajax-запроса, и я бы предпочел вернуть объект json.

...