Есть ли способ использовать что -то вроде в частичных представлениях, которые визуализированы с помощью рендеринга?

StackOverflow https://stackoverflow.com/questions/4742255

Вопрос

В моем веб -приложении ASP.NET MVC 2 я использую RenderAction Чтобы отобразить HTML в том, что я называю области «Flash Message» на веб -сайте. Под областью Flash я имею в виду выделенную область рядом с верхом, в которой есть сообщение о предыдущем запросе, например, как Hello <%: Html.DisplayTextFor(m => m.Username) %> Когда пользователь входит в систему.

Одно флеш -сообщение, над которым я работаю, немного сложнее. Он должен добавить в ответ блок кода JavaScript, но я хочу поместить script Элемент до конца </body> тег, как рекомендовано в книге Высокая производительность JavaScript.

В обычном виде я использую <asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content> положить script Элементы внизу страницы. К сожалению, если я попробую то же самое с частичным взглядом, который отображается с RenderAction, Я получаю ошибку анализатора.

Есть что -то вроде <asp:Content> Что я могу использовать в частичных представлениях, которые вставит содержимое в соответствующее место главной страницы?

Это было полезно?

Решение

<asp:Content> не поддерживается с помощью рендеринга, поскольку рендерингирование эквивалентно наличию кода, который бы выполнял ваш метод действия ребенка, собрал ответ, а затем вставил его с точки зрения родительского метода.

Что вы могли бы сделать, так это добавить сценарии, которые вам нужны где -то в HttpContextBase.Items коллекция. Затем на вашей главной странице прямо перед окончанием документа получите зарегистрированные сценарии и распечатайте их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top