如何在asp.net mvc3中将Id从父级传递到局部视图?

时间:2011-11-06 04:17:16

标签: asp.net-mvc-3 razor

我正在尝试将ID从页面传递到嵌入式partialView,我该如何传递?类似的东西?:

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

如何在部分视图中阅读此ID?:

@model PartialViewModel

@myid = IdFromParent

4 个答案:

答案 0 :(得分:7)

当您将变量作为第二个参数传递给Partial()方法时,它将成为您调用的部分的模型。在这种情况下,您将ID作为整个模型传递,因此您只需使用@Model来获取ID:

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

@* MyControl Partial View *@
@model int

@myid = @Model

如果要将PartialViewModel类型传递给partial,则必须将其作为Parent ViewModel(第一个示例中的模型)的属性提供,或者通过ViewData或ViewBag容器提供。 / p>

答案 1 :(得分:2)

您可以像这样传递您的模型ID

@RenderPartial("Viewname", model.id)

但是如果你想发送多个参数,你可以这样做

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

希望这能解决您的问题

答案 2 :(得分:0)

@Html.RenderPartial("ViewName", Model.Id)

@Html.Partial("ViewName", Model.Id)

答案 3 :(得分:0)

您必须将视图在其@model指令中接受的对象类型传递给视图。因此,如果要将int传递给局部视图,则@model指令必须声明一个int。

或者,您可以传递整个模型对象,其中包含id(当然),并从部分中读取该对象的id。

Model.id