Я написал простой API поиска, используя MVC, который я могу запросить из JQuery. Сейчас мой код выглядит примерно так:MVC - доступ к модели представления с контроллера API
$.ajax({
url: 'api/search',
type: "POST",
data: paramString,
dataType: "json",
success: function(data) {
$('#dataTable').append('<tr>' + '<td>' + params.SearchString + '</td>' + '<td>' + params.DateFrom + '</td>' + '<td>'+ params.DateTo + '</td>' + '<td>'+ JSON.stringify(data) + '</td>' + '</tr>');
}
});
В основном все, что я делаю, это отправить критерии поиска в API, получить результаты обратно, а затем написать соответствующие критерии и результаты поиска в новую строку в результатах таблицу, непосредственно в HTML.
По понятным причинам мне не нравится это решение; он фактически не помещает данные в какую-либо структуру данных, а просто отбрасывает их в HTML, что затрудняет манипулирование ими в будущем и не выполняет хорошую работу по основным принципам проектирования MVC.
Я пытаюсь реорганизовать его так, что вызов API ничего не возвращает и добавляет результат поиска в список в ViewModel, который я могу отображать динамически.
Однако я не могу найти разумный способ получить модель контроллера API. Он хранится на стороне сервера, поэтому я не думаю, что мне нужно передать его через представление через javascript, но я не могу придумать лучший способ.
Спасибо!
Я думаю, что вам лучше иметь свой обратный сервис JSON, а затем вывод, что в любом случае вам нравится в вашем представлении. – user1477388
Вы не можете «добавить результат поиска к списку в модели просмотра», потому что после подачи ответа на ajax (и даже после загрузки страницы) модель представления больше не существует. –