Переключение архитектуры с ASP.NET Page и веб-служб JSON ASMX на MVC - PullRequest
0 голосов
/ 06 февраля 2010

Прямо сейчас, вот как мы работаем на нашем сайте в работе: есть страница .aspx, которая абсолютно ничего не делает в коде, но содержит разметку для страницы в режиме конструктора. Затем у нас есть веб-сервис .asmx, который получает запросы с типом содержимого JSON. Они вызываются JavaScript на странице. Этот веб-сервис возвращает объекты .NET, сериализованные в JSON, в ответ на эти HTTP-посты JavaScript Ajax.

Я бы хотел перейти на MVC, но не уверен, как переключить эту архитектуру.

По сути, мы делаем две вещи:

1) Ответ на GET /MyPage.aspx с разметкой HTML, представляющей страницу
2) Ответ на запросы POST /MyPage.aspx/WebMethodName с объектами .NET, сериализованными в JSON.

Похоже, что MVC был бы хорошим способом устранить необходимость в Page объекте (опять же, кодовая область не используется - используется только разметка HTML в файле .aspx) и веб-службе .asmx. , Нет

Что мне нужно начать менять, чтобы выполнить этот переход? Это просто? Болезненные

У кого-то на работе уже есть страница MVC, работающая в том же каталоге, что и мои веб-службы .aspx и .asmx веб-форм, но я ничего не вижу в каталоге о маршрутах, поэтому я запутался. У него есть подкаталоги Views, ViewModels и Controllers.

Ответы [ 3 ]

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

MVC может вернуть Json, множество примеров в Интернете и SO . Вы гуглили MVC JSON ?

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

То есть у вас нет веских причин для перехода? Страница Asp.Net имеет мало или нет накладных расходов, она скомпилирована.

Просто отключите такие вещи, как viewstate и session, если вы ими не пользуетесь. Количество усилий = почти ничего.

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

У вас есть два варианта:

  1. Вы можете сохранить свой веб-сервис и продолжить работу с тем же ASPX, что и ваш вид. Это потребует небольшой или никакой модификации вашего ASPX (изменение главной страницы)
  2. Вы можете сохранить ASPX и преобразовать ASMX в метод контроллера, который возвращает JsonResult
...