Как объявить глобальную переменную на странице ASP.NET MVC - PullRequest
2 голосов
/ 04 июня 2010

Я начал работать с asp.net mvc совсем недавно и столкнулся с проблемой. У меня есть страница aspx, которая отображает несколько страниц ascx. Я хотел бы объявить глобальную переменную на странице aspx, чтобы она была видна всем ее дочерним элементам. Я пробовал <% var i = 0; %>, но на дочерних страницах его не было видно.

Что я мог сделать?

Ответы [ 2 ]

4 голосов
/ 04 июня 2010

переменные со страницы aspx не передаются частичным представлениям.Представление - это просто представление фрагмента данных.Вы должны передавать данные как модель для каждого представления, которое вы хотите визуализировать, будь то простое представление или представление PartialView.

<% Html.RenderPartial("ViewName", Model, ViewDataDictionnary) %>

Если вы хотите передать переменную в частичное представление, я настоятельноРекомендуется добавить этот параметр в модель частичного представления, а не передавать его дополнительно через ViewDataDictionnary.

0 голосов
/ 04 июня 2010

Вы можете добавить его в ViewData и затем передать ViewData в ascx с помощью

<% Html.RenderPartial("ViewName", Model, ViewData) %>

см. msdn на RenderPartial

Итак, на своей странице aspx вы бы сделали что-то вроде

<% ViewData["i"] = 0; %>

И в вашем пользовательском контроле вы просто извлекаете его и используете его как хотите

<% int i = (int)ViewData["i"] %>

Другим способом было бы использовать RenderAction и передать его в качестве параметра ... поэтому нам нужно знать, как вы отображаете свой ascx.

см. MSDN на RenderAction

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...