Как передать идентификатор от родителя для частичного просмотра в asp.net mvc3? - PullRequest
5 голосов
/ 06 ноября 2011

Я пытаюсь передать идентификатор со страницы во встроенный частичный просмотр, как я могу передать это?что-то вроде?:

@Render.Partial("MyControl",@Model.ID)

После того, как я могу прочитать этот идентификатор в моем частичном представлении?:

@model PartialViewModel

@myid = IdFromParent

Ответы [ 4 ]

7 голосов
/ 06 ноября 2011

Когда вы передаете переменную в качестве второго параметра в метод Partial(), он становится моделью для вызванной вами части. В этом случае вы передаете идентификатор как всю модель, поэтому вам просто нужно использовать @Model, чтобы получить идентификатор:

@*Page View*@
@model MyModel
...
@Render.Partial("MyControl",@Model.ID)

.

@* MyControl Partial View *@
@model int

@myid = @Model

Если вы хотите передать тип PartialViewModel в свой партиал, вы должны будете указать его как свойство в Parent ViewModel (модель в первом примере) или через контейнеры ViewData или ViewBag.

2 голосов
/ 06 ноября 2011

Вы можете передать свой идентификатор модели просто так

@RenderPartial("Viewname", model.id)

но если вы хотите отправить несколько параметров, вы можете сделать это

@RenderPartial("Viewname", model.id, 
               new ViewDataDictionary { { "parameter", parametervalue } })

надеюсь, что это решит вашу проблему

0 голосов
/ 06 ноября 2011

Вы должны передать в представление тот же тип объекта, который принимает представление в своей директиве @model.Поэтому, если вы передаете int в частичное представление, ваша директива @model должна объявить int.

Или вы можете просто передать весь объект модели с включенным идентификатором (конечно) и прочитатьидентификатор этого объекта в частичном.

Model.id
0 голосов
/ 06 ноября 2011
@Html.RenderPartial("ViewName", Model.Id)

или

@Html.Partial("ViewName", Model.Id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...