Mvc 3 中的分部视图

2023-10-31 15:58
文章标签 mvc 视图 分部

本文主要是介绍Mvc 3 中的分部视图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  http://www.cnblogs.com/jiagoushi/archive/2013/01/05/2846762.html


说到asp.net MVC,我相信很多开发者都会和我一样,赞扬一番,把我们开发者的开发速度又可以提高,并且可以随意的控制生成的html,这应该是Mvc时代如果到来的话,最可能使它成功的原因了。但是赞扬归赞扬,既然他是一种开发模式,我们必须要学习,而且要好好学习。

元旦几天假让我放松了一下,今天正式回归正常,开始我的技术之旅。今天探讨一下Mvc中的分部视图。

提到分部视图,我相信大家会想到和web form时代的对应物ascx分部控件,我们在Mvc时代可以更加轻松的控制分部视图。

要说明分部视图,我们先来讨论一下分部视图可以带给我们的优点:

  1. 分部视图可以使系统插件化 。我现在非常推崇一个原则,就是可以分离的东西绝对不要让他们在一起,因为只有每个功能模块都是单独的,我们才可以在其他位置重用它。
  2. 分部视图还可以带来一个优点,就是分工合作。 现在是一个合作的时代,没有任何一个人可以单独完成规定的任务而不与别人合作,除非是牛人例外。分部视图可以带给我们开发不同模块中的分工合作。
  3. 分部视图还有一个在Mvc时代的优点,就是实现简单。我自从学习使用Mvc以后,我基本上就很少写web form的代码了,因为我感觉没有Mvc书写的那么流畅。html.partial(partialName)就可以显示一个分部视图的页面。


简单的叙述了一下优点,既然我们能发现优点存在,那么我们就想在实际项目中更好的使用它,毕竟程序员都追求懒,一段代码,三句可以搞定,绝对不会写三句半,当然最小化原则也是我们代码优化的最终目的。

那么究竟在Mvc中有哪些可以实现分部视图的功能呢?以及我们要注意点什么呢?

  • Html.Partial(partialName)和html.RenderPartial(partialName) 就是首选。 其实这两个方法我们可以指定任何的.cshtml文件,不一定只是分

    部视图。大家来回忆一下分部视图和视图的区别在哪里?就是视图有head、body标签,可以定义js,可以指定母板页,但是在我们用Vs右键添加

    分部视图的时候,我们会看到只是一些基本的html标签,没有任何的head、body,但是这不等于我们不可以添加,所以说partialName可以是任

    何的视图文件。但是我们最好是创建分部视图,因为我们最终是要把这些分部视图合并成为一个页面,如果只是分部视图的html标签,那么在整

    体页面中html标签就会显得很干净。

    另外,我们不要在分部视图中定义或者引用css以及js。如果需要我们在整体页面中定义或引用。原因有2:1是我们的分部视图文件和整体页面的

    路径可能不在同一个目录下,那么会造成找不到css或js文件的情况。2就是对整体页面的html代码是一种伤害。

  • html.Action和html.RenderAction()方法也可以用来作为分部视图使用

具体使用方式我想就不需要细说了,大家对htmlHelper都会非常熟悉,因为常用嘛。

这段时间我在完善仿照博客园的问题,就大量的使用到了分部视图,现在来总结一下,让后来的学习者少走一点弯路。

  1. 如果可以,尽量使用母板页,这样可以很好的控制网站的样式。
  2. 采用单独的css文件,单独的js文件,尽量不要在分部视图中定义样式,而是在整体页面中。
  3. 分部视图的html标签应该尽可能的少,除了要显示的内容之外,不要有任何杂质存在。样式css、js等在整体页面添加。
  4. 如果可以,尽量采用html.partial(partialName)或html.RenderPartial(partialName)的方式,而不要用html.Action来作为分部视图的方式,因为这种方法会和控制器交互。
  5. 对分部视图的传值尽量采用Model的方式进行,如果一个分部视图需要传递两个参数,那么我建议你分成两个分部视图。
  6. 采用分部视图会对整体页面的样式调整带来困难,所以我建议先整体做出页面,然后再分成不同的分部视图。
  7. 过多的分部视图会增加服务器的延迟,所以分部视图的控制要得当,我建议控制在10个以内吧,如果服务器允许,更多也是可以的。
  8. 要注意分部视图的标签id的命名,最好采用固定的要规则的命名方式,尽量减少冲突的发生,毕竟同名的标签存在会对程序造成隐患。

我相信,每天进步的您,最后一定有一个好的未来。

这篇关于Mvc 3 中的分部视图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/316467

相关文章

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

架构全景视图

文章目录 一、战略规划二、业务架构Business Architecture2.1业务架构定义2.2 业务架构组成2.3 TOGAF2.3.1 Archimate建模(重要) 三、数据架构Data Architecture3.1 数据架构定义3.2 数据架构组成 四、应用架构Application Architecture4.1 应用架构定义4.2 应用架构组成 五、技术架构Technol

2409wtl,切换视图

原文 介绍 我从一个基于SDI(单文档接口)WTL向导的应用开始,添加了一些从控件继承的窗口和一些对话框窗口(表单视图),然后才发现我必须,使SDI框架动态加载和卸载子窗口. 本文演示了两个可用来完成的技术:在SDI应用中的视图间动态切换.这是我使用的两个. 技术 1技术:第一个方法涉及按需析构和重建视图实例.这更简单,且在不介意析构和重建窗口对象时效果很好. 2:按需创建视图,然后用

.Net Mvc-导出PDF-思路方案

效果图: 导语:     在我们做项目的过程中,经常会遇到一些服务性的需求,感到特别困扰,明明实用的价值不高,但是还是得实现;     因此小客在这里整理一下自己导出PDF的一些思路,供大家参考。     网上有很多导出PDF运用到的插件,大家也可以看看其他插件的使用,学习学习; 提要:     这里我使用的是-iTextSharp,供大家参考参考,借鉴方案,完善思路,补充自己,一起学习

.net MVC 导出Word--思路详解

序言:          一般在项目的开发过程中,总会接收到一个个需求,其中将数据转换成Work来下载,是一个很常见的需求;          那么,我们改如何处理这种需求,并输出实现呢?          在做的过程中,去思考 1、第一步:首先确认,Work的存在位置,并创建字符输出路:             //在的项目中创建一个存储work的文件夹             string

SSM Spring MVC集成mybatis

一、练习目标 1、需求 完成部门基本的 CRUD 和分页查询,完成员工基本的 CRUD、分页查询和过滤查询(根据姓名和邮箱模糊查询,根据部门查询)。 2、技术架构 使用 Spring MVC + Spring + MyBatis,数据库选用 MySQL,视图选用 JSP。 3、SSM 集成作用及本质 作用:在框架上基础上开发,发挥各个框架在各层的好处,提高开发效率。 本质: Sp