Большую часть времени, когда я создаю метод контроллера, который возвращает 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. Я использовал эту библиотеку в прошлом и нашел ее эффективной. Хотя мне нравится идея продолжать хранить связанный код в контроллере, я могу вернуться к этому для удобства, чтобы я мог тратить больше времени на код, который не может генерировать компьютер.