Asp.net mvc 3 如何在asp.net mvc3中将Id从父视图传递到部分视图?

Asp.net mvc 3 如何在asp.net mvc3中将Id从父视图传递到部分视图?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我正在尝试将ID从页面传递到嵌入的partialView,如何传递?大概是 @Render.Partial("MyControl",@Model.ID) 在我的局部视图中如何读取此ID之后?: @model PartialViewModel @myid = IdFromParent 当您将一个变量作为第二个参数传递到Partial()方法时,它将成为您调用的Partial的模型。在本例中,您将ID作为整个模型传递,因此您只需使用@model来获取ID: @*Page View*@ @mod

我正在尝试将ID从页面传递到嵌入的partialView,如何传递?大概是

@Render.Partial("MyControl",@Model.ID)
在我的局部视图中如何读取此ID之后?:

@model PartialViewModel

@myid = IdFromParent

当您将一个变量作为第二个参数传递到
Partial()
方法时,它将成为您调用的Partial的模型。在本例中,您将ID作为整个模型传递,因此您只需使用
@model
来获取ID:

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

如果要将
PartialViewModel
类型传递到partial中,则必须将其作为父ViewModel(第一个示例中的模型)上的属性,或通过ViewData或ViewBag容器提供

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


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

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

Model.id

您可以像这样简单地传递模型id

@RenderPartial("Viewname", model.id)
但是如果你想发送多个参数,你可以这样做

@RenderPartial("Viewname", model.id, 
               new ViewDataDictionary { { "parameter", parametervalue } })
希望这能解决你的问题

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