如果你只是渲染的部分只有部分名称:
@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"] })
与模型,剃刀将隐含在默认情况下通过你的局部视图的ViewData的,所以如果你在你看来有ViewBag.Id,那么你可以参考你的部分同样的事情。
请在下面找到
@{
ViewBag.Title = "Index";
string someValue ="abcd";
}
的示例代码现在通过这样的
<h2>Index</h2>
@Html.Partial("_MyPartial", someValue)
字符串值有在局部视图消耗你的传递数据的方式没有变化。就部分视图而言,它正在接收可通过@Model访问的数据。
Data received is : @Model
来源
2016-03-11 06:44:57
BSG
当我用这个我收到以下错误。 '在System.Core.dll中发生类型'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'的异常,但未在用户代码中处理' – Prasad