背景:

项目的工期马上就要到了,由于后台封装的很好,我们只需要用心熟悉框架,接下来后台的工作就是简单的代码工作了。原本以为最困难的时期已经过去,可没想到前台才是最困难的。

B/S的基础十分薄弱,加上BS的项目做得少,遇到困难是避免不了的。霞姐说要界面灵活,那种在html里加onclick的时代已经过去。今天就来说说界面灵活之一——分部视图和Razor语法。

分部视图:

在一定程度上,分部视图与用户控件十分类似。他们都可以提高内容或代码的可重用性,但不同之处是,分部视图不需要使用ViewState、PostBacks, and Events 等技术管理状态。分部视图与普通视图的语法没有区别。

优点:

1)简单

2)可重用

3)分工合作

首先,创建一个分部视图。在项目中右键——添加视图,如图:

在介绍分部视图如何使用之前,我们先介绍一种视图引擎,就是在创建分部视图时选择的Razor。

Razor:

含义

一个模块解决方案,用来优化HTML的生成,主要集中在代码方面。Razor并不是一个新的编程语言,而是在让程序员只使用现有的C#/VB(或其它)编程语言知识就能使用Razor,我们只不过在你选择的编程语言里,提供一个非常棒的基于模板生成HTML的标记语法。它拥有十分智能的感应输入提示,用任何文本编辑器都可以进行编写。可以支持对视图执行单元测试

在C#中,几个简单的语法规则:

代码封装在@{...}中

变量和函数以@开头

语句以分号结尾

  1. @*定义变量strMessage*@
  2. @{
  3. var str="Hello World!";
  4. var Message = " Razor";
  5. var strMessage=str + Message;
  6. }
  7. @*利用a标签显示*@
  8. <a>@strMessage</a>

显示结果:

Razor 网页可被描述为带有两种内容的 HTML 页面:HTML内容和 Razor代码。使用 Razor语法ASP.NET 网页拥有特殊的文件扩展名 cshtml使用C# 的Razor 语法)或者vbhtml(使用VB的 Razor)

对Razor有了简单了解之后,我们来看分部视图的简单显示问题。在普通视图Index中,调用分部视图。

创建Controller,并建立AddExamPartial分部视图。

  1. // GET: /Exam/
  2. //对应普通视图
  3. public ActionResult Index()
  4. {
  5. return View();
  6. }
  7. //对应AddExamPartial分部视图
  8. public PartialViewResult AddExamPartial()
  9. {
  10. return PartialView("AddExamPartial");
  11. }

把它们放到一个文件夹下,方便管理。

在普通视图Index中,增加调用语句。

  1. @{Html.RenderPartial("../../Views/Exam/AddExamPartial");}

添加考试的页面就是一个分部视图,已经显示出来了,我们还可以更好的复用它。

总结:

以上只是简单的显示分部视图,并未涉及到传值等数据共享。此外,过多分部视图的使用会增加服务器的延迟,要控制得当。在你遇到十分困难的点时,那便是你薄弱的地方,抓住机会,这会是你收获最大的时候。

MVC中的分部视图的更多相关文章

  1. MVC中使用分部视图参数,改变分部视图连接样式

    MVC中使用分部视图参数,改变分部视图连接样式! Controller代码 [ChildActionOnly] public ActionResult Navigator(int tag) { ret ...

  2. 如何应用ASP.NET MVC中的分部视图

    概述: 在ASP.NET Web Form的开发经验中,对于User Control使用比较频繁,可以减少重复的代码,利于页面模块化,这个概念也被引入了ASP.NET MVC.即“分部视图”. 1.创 ...

  3. asp.net mvc视图中嵌套分部视图

    asp.net mvc中Layout相当于webForm中母版页,分部视图相当于webForm中的用户控件. 下面例子是一个视图如何嵌套分部视图: A是分部视图,B是一般视图(A,B中的代码省略) 我 ...

  4. 爱上MVC~ajax调用分部视图session超时页面跳转问题

    回到目录 这个问题出现了很多年了,都没有解决,问题是这样的,有一个需要授权才可以访问的分部视图,在一个view中使用ajax的方法去调用它,然后更新页面的局部DIV,这时,如果你长时间不操作,sess ...

  5. [转载]ASP.NET MVC 3的分部视图

    1.什么是分部视图,我们应该什么时候应该用? 作为一个对ASP.NET MVC 模型很熟悉的开发者,他们自然想创建一个内容和代码都可以重用的组件,在web 窗体,我们可以创建一个web用户控件或web ...

  6. asp.net mvc 中的部分视图

    使用方法:@Html.Action(action, controller)加载局部页面.例如在模板页中使用:@Html.Action("Contact", "Compan ...

  7. JAVAEE企业级应用开发浅谈之MVC 中的V-VIEW视图

    Step1.情景概要 Hello,小伙伴们,好久不见,之前跟大家分享了三层架构与MVC思想,相信大家对于这两块内容有了相对清晰的个人认识了,既然我们讲到了MVC,这里我们接着这块内容继续往下深入,今天 ...

  8. 使用HTML辅助方法载入分部视图

    在webform中我们用过user control可以减少重复代码也利于将页面模组化, 在mvc中 叫分部视图 Partial View.   也就是一个片段的view.可以利用Partial vie ...

  9. 关于 ASP.NET MVC 中的视图生成

    在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通 ...

随机推荐

  1. 洛谷P3975 弦论

    题意:求一个串的字典序第k小的子串/本质不同第k小的子串. 解:一开始我的想法是在后缀树上找,但是不知道后缀树上的边对应的是哪些字符... 然而可以不用fail树转移,用转移边转移即可. 先建一个后缀 ...

  2. A1112. Stucked Keyboard

    On a broken keyboard, some of the keys are always stucked. So when you type some sentences, the char ...

  3. Summary of Java basics review data

    1.标识符      用于命名程序的对象,如方法名,变量名,规则是: a.大小写敏感 b.由英文字符,文字字符,美元符号,下划线和数字组成,但不能以数字开头 c.不能是关键字 2.%:求余运算符    ...

  4. JavaScript之美读书笔记一

    前两天去图书馆借了一本<JavaScript之美>,在书架上无意中看到的,想着那就看看吧. 第一章 原型 有些JavaScript爱好者宣称JavaScript是一种基于原型而不是面向对象 ...

  5. (链表) leetcode 21. Merge Two Sorted Lists

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  6. rest_framework学习之路

    目录 RESTful理解 APIView 序列化组件 视图组件 解析器 认证组件 权限组件 频率组件 分页器 响应器 URL控制器 版本控制器

  7. Mac 上有哪些鲜为人知且极大提高效率的工具?

    来源:知乎文章收录于:风云社区SCOEE,提供上千款各类mac软件下载 1. Focus  功能: 屏蔽影响你学习的网站.  同类软件:Self Control, Rescue Time  特点 ...

  8. Go-day05

    今日概要: 1. 结构体和方法 2. 接口 一.go中的struct 1. 用来自定义复杂数据结构 2. struct里面可以包含多个字段(属性) 3. struct类型可以定义方法,注意和函数的区分 ...

  9. bzoj3991 LCA + set

    https://www.lydsy.com/JudgeOnline/problem.php?id=3991 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有 ...

  10. springboot启动报错Failed to configure a DataSource

    2018-11-21 19:43:12.076 WARN 5392 --- [ main] ConfigServletWebServerApplicationContext : Exception e ...