ASP.NET MVC 2 - лучшая реализация доставки статуса / обновлений / общих сообщений и модального отображения JavaScript - PullRequest
0 голосов
/ 06 октября 2010

Для приложения MVC 2, которое опирается на множество частичных представлений и почти исключительно использует Ajax для POST / GET, какой был бы лучший способ реализовать установку, передачу, извлечение и отображение (используя модал JavaScript) этих сообщений?

My формирует все POST (посредством jQuery $ .ajax) для действий, которые возвращают частичные представления (html), которые используются для обновления в части "success:" функции $ .ajax.

Я надеялся на какой-то механизм в главном представлении, который мог бы «прослушивать» любые сообщения, которые могут быть «доставлены» любым из этих частичных представлений - например, через их ViewData.

Спасибо.

Edit:

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

Ответы [ 2 ]

0 голосов
/ 07 октября 2010

Ваше «главное представление» не сможет иметь механизм, подобный тому, о котором вы думаете, просто потому, что вы просите его знать о потенциальных данных, которые могут быть ему предоставлены на основе возможного взаимодействия с пользователем.

Я думаю, что @cottsak пытается сказать, что в вашем коде JS есть функции-делегаты, которые обрабатывают ошибки и события успеха.Таким образом, вы можете иметь 100 Ajax-запросов, но только 2 функции фактически обрабатывают ответ.В рамках этих функций вам придется нормализовать работу с ответами, чтобы вам не приходилось писать условные выражения для конкретных форм, например.Это может потребовать нормализации ваших форм, чтобы они имели идентичные структуры и базовые функциональные возможности и различались только по их входному содержимому.

Например, я использую «Wizards» на некоторых из моих сайтов, которые имеют дело с модальными формами:

<div class="Wizard">
  <form>
  <!-- Any and all possible content -->
  </form>
</div>

Все мои формы, конечно, различаются по фактическим данным, которые они имеют, но все они нормализованы в том смысле, что в них есть выделенные элементы для обмена сообщениями и тому подобное.Однако каждая отдельная форма контролируется одним и тем же JS с несколькими исключениями для особых сценариев.

0 голосов
/ 06 октября 2010

Вам стоит взглянуть на веб-интерфейс Dropbox . Получите себе бесплатную учетную запись и пользуйтесь интерфейсом в течение 10 минут - копируйте, перемещайте, удаляйте файл. Система обмена сообщениями и валидации великолепна. И это в значительной степени ajax на их сайте тоже. Прекрасный пример пользовательского опыта, который вы хотите, звучит как.

Что касается технической реализации, я некоторое время думал об этом:
Я бы использовал брокерскую систему на клиенте, для которой выполняются все запросы ajax страницы. Таким образом, все ответы могут быть сопоставлены в одной функции (/ объект, как бы вы ее ни проектировали) и, следовательно, ответы тоже. Очевидно, что ответы являются ключевыми, так что сообщения об ошибках и сообщения о состоянии могут обрабатываться в одном месте и предоставляться пользователю единообразным способом.

На стороне сервера это не будет слишком сложно. Я бы предположил, что у вас есть решение изящной деградации для тех действий, которые возвращают JSON или другие ajax-ответы, в том смысле, что они могут функционировать (и возвращать сообщения об ошибках / состоянии) без включения JavaScript у клиента .

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