【asp源码栏目提醒】:本文主要为网学会员提供“Asp net MVC 2中重构View的三种方式 - 计算机教材”,希望对需要Asp net MVC 2中重构View的三种方式 - 计算机教材网友有所帮助,学习一下!
我们在
Asp.net mvc的view开发过程中如果不注意可能会写大量的重复的代码。
这篇文章介绍3种方式重构View的代码来减少View中的重复代码。
1、母板页 在
Asp.net mvc中保留了母板页的使用我们可以使用母板页对我们的站点进行布局。
看下面母板页的代码My MVC Application My MVC Application 在
Asp.net mvc中使用母板页和Web Form中类似需要定义ContentPlaceHolder加上使用一些常用的HTML标签进行布局。
当多个页面都有同样的内容的时候使用母板页是非常有用的。
2、Partial Partial类似于Web Form中的用户控件。
用它来渲染成内容页使用Partial最大的好处是这些代码段定义在View页面而不是代码中。
下面举例说明 渲染partial非常简单我们可以在父View中使用RenderPartial和Partial方法Profiles的代码如下在Profiles中使用RenderPartial渲染Profile。
ProfilesUsernameFirst nameLast nameEmail 上面的代码我将一个profile的List渲染成一个table。
每一行定义了一个Partial用来渲染成一行。
即使内容页不能与其他View分享在一个View中使用partial可以简化和减少HTML的标签数量。
RenderPartial方法需要一个partial名字和一个Model参数。
根据的partial名字用来搜索本地的partial文件需遵循下面的规则 1 .aspx and .ascx 2 Shared.aspx and .ascx 3 .aspx and .ascx 4 Shared.aspx and .ascx 这些搜索类似于根据view的name搜索view也可以使用 渲染。
Profile文件即可以是一个ASCX文件如果必要也可以是一个aspx的文件。
Profile的代码如下 我们在View中如下渲染Profiles 渲染效果如下 3、Child Action Partial用来显示已经存在Model的信息时非常方便的。
但是有时候View上显示的数据源自其他Model。
例如登录控件可能会显示当前用户的名称和电子邮件但该View的主体部分与用户关系不大。
可以使用ViewDataDictionary来传递没联系的Model但是我们可以使用Child Action。
对于在View中显示与主体没有多大关系的信息这里介绍一下Child Action的使用。
下面举例子说明。
在模板页中显示当前的用户信息当用户登录之后显示用户名邮箱之类的信息当用户没有登录给出登录的连接。
在模板页中加入下面代码 LogOnWidget的代码如下ChildActionOnly确保只能通过RenderAction调用此方法。
ChildActionOnly public ViewResult LogOnWidget bool isAuthenticated Request.IsAuthenticated Profile profile null if isAuthenticated var username HttpContext.User.Identity.Name profile _profileRepository.Findusername if profile null profile new Profileusername _profileRepository.Addprofile return Viewnew LogOnWidgetModelisAuthenticated profile 用一个用户控件来显示这个Action的Model的信息用户控件代码如下。
Welcome 总结本文阐述了三种方式来重构你View的代码使用这三种方式可以大量减少View层重复出现的代码。
由于也是最近开始学习
asp.net mvc如果叙述和理解有问题欢迎批评指正。
上一篇:
+SQL Server 商务系统开发与典型实例 第11章
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a