如果只使用部分名称渲染部分:
@Html.Partial("_SomePartial")
它实际上将您的模型作为隐式参数传递,就像您调用时一样:
@Html.Partial("_SomePartial", Model)
现在,为了让你的部分实际上能够使用它,它也需要有一个已定义的模型,例如:
@model Namespace.To.Your.Model
@Html.Action("MemberProfile", "Member", new { id = Model.Id })
或者,如果你正在处理一个不在你视图模型上的值(它在ViewBag中或者以某种方式在视图中生成的值),那么你可以传递一个ViewDataDictionary
@Html.Partial("_SomePartial", new ViewDataDictionary { { "id", someInteger } });
然后:
@Html.Action("MemberProfile", "Member", new { id = ViewData["id"] })
与模型一样,默认情况下,Razor将隐式传递视图的ViewData部分,因此如果您在视图中有ViewBag.Id,那么您可以在部分中引用相同的内容.
请在下面找到示例代码
@{
ViewBag.Title = "Index";
string someValue ="abcd";
}
现在传递像这样的字符串值
Index
@Html.Partial("_MyPartial", someValue)
部分视图使用传递的数据的方式没有变化.就部分视图而言,它正在接收您可以通过@Model访问的数据.
Data received is : @Model