如何在ASP.NET MVC3中从父视图传递ID至局部视图?

5
我正在尝试将一个页面的ID传递给嵌入的partialView,我该如何传递?类似这样的方式:?
@Render.Partial("MyControl",@Model.ID)

如何在我的局部视图中读取此ID?
@model PartialViewModel

@myid = IdFromParent
4个回答

8
当您将变量作为第二个参数传递到Partial()方法中时,它就成为您所调用的部分的模型。在这种情况下,您将ID作为整个模型进行传递,因此您只需使用@Model即可获取ID:
@*Page View*@
@model MyModel
...
@Render.Partial("MyControl",@Model.ID)

.

@* MyControl Partial View *@
@model int

@myid = @Model

如果您想将 PartialViewModel 类型传递给您的 partial,您需要在父 ViewModel(第一个示例中的模型)上提供该属性,或通过 ViewData 或 ViewBag 容器提供。


2
您可以像这样简单地传递您的模型 ID:
@RenderPartial("Viewname", model.id)

但是如果您想发送多个参数,可以按照以下方式进行:
@RenderPartial("Viewname", model.id, 
               new ViewDataDictionary { { "parameter", parametervalue } })

希望这可以解决你的问题。

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

或者

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

0

在视图中,你必须传递与@model指令所接受的相同类型的对象。因此,如果你要将int传递给部分视图,则你的@model指令必须声明一个int。

或者,你可以直接传递整个模型对象,并包括id(当然),然后在部分视图中从该对象中读取id。

Model.id

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接