宝哥软件园

谈ASP.NET核心2.0的部分观点(翻译)

编辑:宝哥软件园 来源:互联网 时间:2021-09-03

问题

如何在ASP.NET Core 2.0中使用部分视图重用页面的公共部分?

回答

创建一个新的空项目,并在启动中添加MVC服务和中间件:

public void ConfigureServices(IServiceCollection services){ services。AddMvc();} public void Configure(IApplicationBuilder应用程序,IHostingEnvironment env){ if (env。IsDevelopment()) { app。usedeveloper exception page();} app。UseMvc(routes={ routes。MapRoute(name: 'default ',template : ' { controller=Home }/{ action=Index }/{ id?}');});}添加两种型号:

公共类EmployeeViewModel { public int Id { get;设置;}公共字符串Firstname { get设置;}公共字符串姓氏{ get设置;} public AddressViewModel地址{ get设置;}}公共类AddressViewModel{公共字符串Line1 { get设置;}公共字符串Line2 { get设置;}公共字符串Line3 { get设置;}}添加控制器,返回ViewResult并传入模型实例:

公共类HomeController : Controller { public IActionResult Index(){ var model=new employeeview model { Id=1,Firstname='James ',姓氏='Bond ',地址=new Address viewmodel { line 1=' Secret Location ',Line2='London ',Line3=' UK ' } }返回视图(模型);}}添加视图页面Index.cshtml:

@使用PartialView。模型;@ model EmployeeViewModel div style=' border : 1px纯黑;Margin3360 5px' H2员工详细信息(父视图)/h2pfirst name : @ model.firstname/p p姓氏3360 @ model.surname/p @ html . partial(' _ address . cshtml ',model.address)/div添加partial view _ address.cshtml:

@使用PartialView。models @ model address viewmodel div style=' border : 1px虚线红色;Margin: 5px 'h3地址详细信息(部分视图)/h3plin 13360 @ model . line 1/pppline 2: @ model . line 2/pppline : @ model . line 3/p/div现在,解决方案中的目录结构:

运行时,页面显示:

讨论

局部视图是在其他视图中呈现的特殊视图。这对于重用视图的部分结构或将大视图分成小组件非常有用。

部分视图可以像普通视图一样创建,视图结果可以通过控制器方法返回。关键的区别在于_ViewStart.cshtml在呈现一些视图之前并不运行,它通常在其他视图内部呈现。

在视图中,部分视图由@Html呈现。分部(),分部视图的名称和可选模型实例被传入。部分视图名称可以是绝对路径或相对路径,视图引擎将在当前目录和共享目录中找到相应的部分视图。

部分视图可以获得父视图的视图数据的副本。您也可以将模型导入其中,该模型通常是父视图模型的一部分。

注意:ASP.NET核心还提供了另一个更灵活的解决方案来重用或分离视图。这种解决方案不仅可以运行代码,而且不需要依赖父视图。这就是视图组件,我们将在下一节中介绍它。

源代码下载

原文:https://tahirnaushad.com/2017/08/24/ASP-net-core-2-0-MVC-partial-view/

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+