您需要设置一些局部视图并在渲染汽车细节时使用它。
什么是局部视图?
是内景。一个视图文件中可以有多个局部视图。
如何使用?
@Html.Partial("{your view name}", "{your model}")
回到你的例子:你想显示一些与渲染细节相关brand
的model
信息car
。
假如说:
- 的视图模型
http://localhost/brands/1
是CarBrandViewModel
和
- 的视图模型
http://localhost/models/2
是CarModelViewModel
。
模型
对于您的car
详细信息页面,您需要定义一个CarDetailViewModel
:
public class CarViewModel
{
public CarBrandViewModel CarBrand { get; set; }
public CarModelViewModel CarModel { get; set; }
/* some other fields for your car */
}
这CarViewModel
将是 的视图模型http://localhost/car/1/2
。
看法
您需要定义3个视图文件:
- 汽车详细信息的视图文件,例如
CarDetail.cshtml
;
- 品牌信息的部分视图,例如
Shared\_CarBrandDetail.cshtml
;
- 模型信息的部分视图,例如
Shared\_CarModelDetail.cshtml
该_CarBrandDetail.cshtml
文件应该接受一个CarBrandViewModel
对象作为模型:
// in your _CarBrandDetail.cshtml...
@model CarBrandViewModel
<!-- your code for rendering brand information ->
中定义类似的东西_CarModelDetail.cshtml
。这次你应该设置:
@model CarModelViewModel
现在,在CarDetail.cshtml
:
// in your CarDetail.cshtml...
@model CarViewModel
@* render your brand's details *@
@{
Html.RenderPartial("_CarBrandDetail", Model.CarBrand);
}
@* render your model's details *@
@{
Html.RenderPartial("_CarModelDetail", Model.CarModel);
}
<!-- your code for rendering other details of the car -->
笔记:
需要一@{
}
对来包围Html.RenderPartial();
通话。
不必将所有部分视图放在Shared
文件夹下。但是,如果将部分视图放在其他地方Views
,则需要在调用时更改文件路径Html.RenderPartial()
。
您可能希望重用您的_CarBrandDetail
in http://localhost/brands/1
。在这种情况下,您可以为brand/{id}
页面创建一个视图,然后调用_CarBrandDetail
部分视图。