Результат Javascript для создания Ajax-операций Jquery CRUD - PullRequest
2 голосов
/ 17 февраля 2009

Последняя версия Asp.Net MVC RC позволяет возвращать JavaScript ActionResult.
Я хотел бы динамически генерировать из контроллера код сценария Jquery, связанный с выполнением классических вызовов $ .ajax к контроллеру для операций Create Read Update Delete в ajax вместо классических действий формы get / post. Должен ли я генерировать код JavaScript во время разработки (как сейчас с шаблонами T4) или во время выполнения?
Я знаю, что это нарушит четкое разделение между видом и контроллером, но есть ли лучший способ?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2009

На мой взгляд, это плохая техника для возврата результата действия javascript. Вы получите беспорядок кода, как при использовании встроенных стилей для HTML-элементов. Почему бы не записать JS в отдельный файл и просто включить его в страницу? Чтобы выполнить некоторые действия после вызова ajax, вы легко можете использовать обратный вызов. Если вам нужно указать, какие элементы вам нужно обновить или удалить или что-то еще, вы можете использовать JsonResult и $ .getJSON или $ .post (url, data, callback, 'json'). Чтобы изменить ваши формы, вы можете использовать плагин jquery.form. Также посмотрите на плагин jquery.jframe, который предоставляет функциональные возможности для обновления некоторых других элементов в ответ на запрос.

0 голосов
/ 30 октября 2011

Большую часть времени, когда я создаю метод контроллера, который возвращает JsonResult, я заканчиваю тем, что пишу тот же самый шаблонный код javascript, чтобы получить к нему доступ, который я написал десятки (может быть, сотни) раз, но с другими параметрами и другой функцией обратного вызова. Я думал, что это прекрасная возможность для генерации кода. Я все еще изучаю это, но вот несколько ресурсов, с которыми я столкнулся:

  • Сообщение в блоге Стива Сандерсона, в котором рассматривается использование T4 для создания вспомогательного контроллера сетки AJAX, который включает в себя некоторый сгенерированный javascript, который подключает сетку. http://blog.stevensanderson.com/2011/04/08/mvcscaffolding-scaffolding-custom-collections-of-files/
  • Jayrock (http://jayrock.berlios.de/) - это среда JSON RPC, которая помогает создавать службы, возвращающие JSON, и генерирует собственные прокси-классы javascript, которые обрабатывают кодирование ajax для выполнения синхронных и асинхронных вызовов к серверу. Пример с сайта проекта :

    var s = new HelloWorld ();

    alert ("sync:" + s.greetings ());

    s.greetings (function (response) { alert ("async:" + response.result) });

Кроме того, он генерирует тестовые страницы, аналогичные тем, которые были сделаны веб-сервисами .NET. Я использовал эту библиотеку в прошлом и нашел ее эффективной. Хотя мне нравится идея продолжать хранить связанный код в контроллере, я могу вернуться к этому для удобства, чтобы я мог тратить больше времени на код, который не может генерировать компьютер.

...