是的。默认情况下,它使用父视图(视图)模型。但是你总是可以显式地向它传递另一个模型(只要传递的模型的类型与视图的强类型相同)。
@Html.Partial("MyPartialView",Model)
或者
@{ var data = new MyClass { SomeProperty = "SomeValue"};
@Html.Partial("MyPartialView",data )
假设MyPartialView 被强类型化为MyClass
@model MyClass
例如,如果您的主视图是强类型的 Order 类,该类具有像这样的 Customer 属性
public class Order
{
public int OrderId { set;get;}
public Customer Customer { set;get;}
}
public class Customer
{
public string Name { set;get;}
}
您可以通过传递Model.Customer,从您的主视图调用客户类的强类型部分视图
@model Order
<h2>@Model.OrderId</h2>
@Html.Partial("Customer",Model.Customer)
假设您的客户视图强类型为Customer 类型
@model Customer
<h2>@Model.Name</h2>
只要您有一个 Customer 对象可以传递给它,您就可以从任何地方调用 Customer 局部视图。 (如果你的父视图是强类型的 Customer 类,你不需要显式传递它)