Можем ли мы полностью заменить функциональность MVC API - PullRequest
0 голосов
/ 13 октября 2018

Я недавно начал изучать .Core MVC и WEB api. Я обнаружил, что функциональность Web Api похожа на MVC, тогда почему мы не можем использовать API вместо MVC для всех случаев MVC

Например, для возврата списка Pies из DbContext _dbcontext Code:

Public IAction Index()
{
    var PiesCollection=_dbcontext.Pies.ToList();
    return View(PiesCollection);
}

Вместо того, чтобы возвращать PiesCollection в View, почему мы не можем использовать AJAX из представления для вызова GetPies api и замены его на

public IAction GetPies()
{
    return JsonResult(_dbcontext.Pies.ToList());
}

1 Ответ

0 голосов
/ 13 октября 2018

Ничто не мешает вам сделать это, однако, это связано с недостатком дополнительной работы над интерфейсом и может вызвать некоторые раздражающие побочные эффекты для пользователей, если вы не будете осторожны.

Вместовыполняя всю работу по созданию HTML-кода перед его отправкой в ​​браузер, вы отправляете им неполный HTML-код, оставляя места открытыми для «будущего» контента.Затем страница должна запросить этот отсутствующий контент.Служба должна выполнять ту же работу, что и до сбора данных, но теперь она должна сериализовать ее для отправки в браузер.Затем браузер должен проанализировать этот контент для создания пользовательского интерфейса.

Это может означать, что интерфейс больше не связан с вашими данными, поэтому вы можете кэшировать его или размещать на других серверах, так как он не 'Тебе не нужна вся логика.Так работают даже некоторые мобильные приложения.Внешний интерфейс уже не веб-сайт, а приложение для iOS или Android, которое получает все данные из сервисов asp.net.

Но недостатком является то, что если пользовательский интерфейс сильно зависит от данных, возвращаемых этой службой, то ваш пользователь должен ждать, пока браузер / приложение получит ответ, проанализирует его и отобразит его на экране.,Это может раздражать пользователей, когда содержимое страницы перемещается или изменяется по мере загрузки данных.

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