asp.net MVC RC1 RenderPartial ViewDataDictionary

Адреса в любом компьютере являются байтовыми адресами. Невозможно иметь меньшую степень детализации при рассмотрении доступа к памяти.

Вы можете полностью получить доступ к последовательным байтам в памяти, увеличив указатель, но у вас должен быть указатель на байты (например, char или unsigned char в C).

Если ваш указатель указывает на объект другого типа (целые числа, числа с плавающей запятой, структуры и т. Д.), Увеличение указателя приведет вас к следующему объекту. Например, если p является указателем на int (4 байта), p ++ добавит к p размер int (4).

Google «арифметика указателей», если не знакома с этими понятиями.

22
задан Rui Jarimba 14 April 2013 в 15:19
поделиться

5 ответов

Имейте Вас попробованный:

<% Html.RenderPartial("~/Views/Project/Projects.ascx", ViewData); %>

Также Вы проверили, что ViewData ["Тест"] находится в ViewData перед передачей его? Также обратите внимание, что при передаче ViewData Частичному Управлению, что важно сохранить Модель тем же.

Nick

5
ответ дан Nick Berardi 29 November 2019 в 03:53
поделиться

В Вашем основном представлении:

<% Html.RenderPartial("~/Views/Project/Projects.ascx", ViewData["Projects"]); %>

или в Вас контроллер или в Вашем основном представлении:

ViewData["Test"] = "Mark";

, Если Вы не указываете модель или просматриваете словарь данных в RenderPartail, он использует тех от содержания представления.

1
ответ дан Tim Scott 29 November 2019 в 03:53
поделиться

Я использую версию RTM ASP.NET MVC, но с:

<% Html.RenderPartial("~/Views/Project/Projects.ascx", new ViewDataDictionary(new {Key = "Some value"})); %>

Попробуйте следующее при ссылке на значение в частичном представлении:

<%= ViewData.Eval("Key") %>

Это, кажется, добилось цели для меня. Это будет также работать, если Вы просто сделаете это:

<% Html.RenderPartial("~/Views/Project/Projects.ascx", new {Key = "Some value"}); %>

Надеюсь, это поможет.

6
ответ дан 29 November 2019 в 03:53
поделиться

Не знаю, волнует ли еще кого-нибудь, но я использовал KeyValuePair для ViewDataDictionary.

 <% Html.RenderPartial("ItemRow", item, new ViewDataDictionary{
        new KeyValuePair<string, object>("url", url),
        new KeyValuePair<string, object>("count", count),
        new KeyValuePair<string, object>("className", className)
 }); %>

Таким образом, вы можете записать все в одном утверждении. Доступ к KVP можно получить в представлении:

<%= ViewData["url"] %>
<%= ViewData["count"] %>
<%= ViewData["className"] %>

В то время как то, что я пропустил через модель, можно получить через Модель. *

12
ответ дан 29 November 2019 в 03:53
поделиться

Это самый изящный способ, который я видел для этого:

<% Html.RenderPartial("/Views/Project/Projects.ascx", Model, new ViewDataDictionary{{"key","value"}});%>

Это может показаться немного хакерским, но он позволяет вам отправить модель через И некоторые дополнительные данные.

35
ответ дан 29 November 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: