Arhn - архитектура программирования

Передовой опыт ASP.NET MVC: передача данных

Это может быть очевидный вопрос, но скажем, я хотел передать некоторые данные в свое представление и сразу же хочу обработать их с помощью javascript. Похоже, что настоящая архитектура MVC потребует, чтобы эти данные передавались с использованием ViewModel:

public ActionResult Index()
{
    SomeViewModel model = PopulateSomeViewModel();
    return View( model );
}

а затем доступ к представлению с использованием синтаксиса Razor @Model.SomeData

Однако я также понимаю, что я могу (должен? не должен?) использовать HTTP-метод jQuery get для вызова метода PopulateSomeViewModel() из представления:

$().get("/SomeController/PopulateSomeViewModel")

а затем обрабатывать данные, как мне нужно.

В ASP.NET MVC и дизайне MVC в целом будет ли второй подход подходящим или технически неправильным?


  • Обычно такой метод, как PopulateSomeViewModel(), будет частным методом, а не конечной точкой контроллера. 25.07.2018

Ответы:


1

В ASP.NET MVC и дизайне MVC в целом будет ли второй подход подходящим или технически неправильным?

Каждый имеет свое собственное использование, поэтому нет правильного или неправильного.

1-й подход

public ActionResult Index()
{
    SomeViewModel model = PopulateSomeViewModel();
    return View( model );
}

Доступ к модели как @Model.SomeData внутри View. Это строго типизированный и распространенный подход в MVC, если вы хотите получить доступ к модели внутри View в том же HTTP-запросе.

2-й подход

$.ajax({
   url: API_URL,
   contentType: "application/json",
   method: "GET",
   data: JSON.stringify({"id": 1}, 
   success: function(result) { return result; }
});

Мы используем Ajax только если нам нужно получить доступ к данным на стороне сервера со стороны клиента после полной загрузки страницы. Обратите внимание, что это обращение к серверу туда и обратно, а не замена 1-го подхода.

25.07.2018
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..