У меня возникают проблемы с принятием решения о том, можно ли создавать HTML в действиях контроллера и предоставлять этот HTML обратно в вызовы AJAX с моей точки зрения (с использованием jquery).
Например, при выборе клиента с помощью jQuery Autocomplete, помимо простого получения идентификатора выбранного клиента, нам также необходимо создать форму отображения или редактирования для него.
Мы могли бы:
- Имеют десятки заполнителей
div
с правильными идентификаторами и получают Client
объект JSON из действия контроллера, а затем обновляют эти div с содержимым нашего объекта (очень подвержено ошибкам, много IF в нашем JS-коде, и др.),
- или вместо того, чтобы запрашивать
Client
объект JSON, лучше запросить подготовленный HTML и просто вставить его в представление (более привлекательное решение, логику перенесли в контроллер и проще в обслуживании - я скорее поддерживаю код C #, чем JS).
Как вы думаете, это допустимые варианты? Что делают большинство современных приложений?
- Хотя 2. будет отлично работать для формы отображения клиента, она будет работать для редактирования ?. Форма Eedit должна содержать элементы управления HTML
input
, потому что я хочу, чтобы свойства клиента отправлялись обратно, потому что когда они отправляются обратно в контроллер, я могу материализовать модель представления с ними.