Я ищу ответ типа наилучшей практики здесь. в основном у меня очень болтливое приложение, которое будет очень часто возвращать биты данных клиенту. возвращаемые биты данных в конечном итоге будут динамически добавляться в HTML. поэтому я пытаюсь выбрать один из следующих двух способов:
- вернуть только данные json, создать html на стороне клиента, используя шаблоны jquery и, возможно, jquery
- возвращает фактический HTML-код, созданный на стороне сервера
Я хотел бы сделать выбор, который легче всего поддерживать. то есть я хочу лучший способ, который позволит мне очень часто обновлять фрагменты HTML.
Я на самом деле ищу способ сделать # 2 с использованием частичных представлений ASP MVC и хочу иметь возможность использовать форматирование строк. по сути, я хочу позвонить так:
string sHtml = string.Format(GetNewTradeHtml(), "GOOG", "100", "635.50");
и я хочу, чтобы GetNewTradeHtml () фактически получал html из представления ASP MVC вместо строковой константы, которая может выглядеть следующим образом:
const string cNewTradeHtml = "<li><span>Symbol: {0}</span><span>Qty: {1}</span><span>Price: {2}</span></li>";
строковые константы, кажется, популярный способ делать подобные вещи, и я ненавижу поддерживать их ...
В основном я думаю, что я ищу способ управления просмотром нескольких шаблонов представления, для которых я могу вызвать ToString (), получить необработанный HTML и использовать для него форматирование строк. и я надеюсь, что есть предложенный способ решения моей конкретной проблемы в ASP MVC (без некоторого взлома). но, возможно (к сожалению) строковые константы + string.format - лучший способ поддерживать динамический HTML-код на стороне сервера ...
ОБНОВЛЕНИЕ:
вот что я узнал с тех пор, как написал этот вопрос:
здесь много сообщений о том, как отобразить представление в строку. много разных способов, некоторые работают с разными версиями MVC, некоторые нет. некоторые более чистые, чем другие, некоторые довольно тяжелые ... ВСЕ из которых, как правило, представляют собой решения, которые требуют контекста контроллера. поэтому в большинстве случаев решения прекрасно работают как ответы на запросы. но для моего случая мне нужно сделать это вне контекста контроллера, так что теперь мне нужно либо насмехаться над контроллером, либо создавать кучу поддельных объектов, с которыми я действительно не хочу иметь дело.
поэтому я определил, что на самом деле НЕТ простого способа визуализации частичного бритвы в его строковое представление без использования контроллера в ответе. им действительно нужно сделать простой способ сделать это, не копируя контекст контроллера и не запрашивая объекты.