MVC中的分部视图
背景:
项目的工期马上就要到了,由于后台封装的很好,我们只需要用心熟悉框架,接下来后台的工作就是简单的代码工作了。原本以为最困难的时期已经过去,可没想到前台才是最困难的。
B/S的基础十分薄弱,加上BS的项目做得少,遇到困难是避免不了的。霞姐说要界面灵活,那种在html里加onclick的时代已经过去。今天就来说说界面灵活之一——分部视图和Razor语法。
分部视图:
在一定程度上,分部视图与用户控件十分类似。他们都可以提高内容或代码的可重用性,但不同之处是,分部视图不需要使用ViewState、PostBacks, and Events 等技术管理状态。分部视图与普通视图的语法没有区别。
优点:
1)简单
2)可重用
3)分工合作
首先,创建一个分部视图。在项目中右键——添加视图,如图:
在介绍分部视图如何使用之前,我们先介绍一种视图引擎,就是在创建分部视图时选择的Razor。
Razor:
含义
一个模块解决方案,用来优化HTML的生成,主要集中在代码方面。Razor并不是一个新的编程语言,而是在让程序员只使用现有的C#/VB(或其它)编程语言知识就能使用Razor,我们只不过在你选择的编程语言里,提供一个非常棒的基于模板生成HTML的标记语法。它拥有十分智能的感应输入提示,用任何文本编辑器都可以进行编写。可以支持对视图执行单元测试。
在C#中,几个简单的语法规则:
代码封装在@{...}中
变量和函数以@开头
语句以分号结尾
- @*定义变量strMessage*@
- @{
- var str="Hello World!";
- var Message = " Razor";
- var strMessage=str + Message;
- }
- @*利用a标签显示*@
- <a>@strMessage</a>
显示结果:
Razor 网页可被描述为带有两种内容的 HTML 页面:HTML内容和 Razor代码。使用 Razor语法ASP.NET 网页拥有特殊的文件扩展名 cshtml使用C# 的Razor 语法)或者vbhtml(使用VB的 Razor)
对Razor有了简单了解之后,我们来看分部视图的简单显示问题。在普通视图Index中,调用分部视图。
创建Controller,并建立AddExamPartial分部视图。
- // GET: /Exam/
- //对应普通视图
- public ActionResult Index()
- {
- return View();
- }
- //对应AddExamPartial分部视图
- public PartialViewResult AddExamPartial()
- {
- return PartialView("AddExamPartial");
- }
把它们放到一个文件夹下,方便管理。
在普通视图Index中,增加调用语句。
- @{Html.RenderPartial("../../Views/Exam/AddExamPartial");}
添加考试的页面就是一个分部视图,已经显示出来了,我们还可以更好的复用它。
总结:
以上只是简单的显示分部视图,并未涉及到传值等数据共享。此外,过多分部视图的使用会增加服务器的延迟,要控制得当。在你遇到十分困难的点时,那便是你薄弱的地方,抓住机会,这会是你收获最大的时候。
MVC中的分部视图的更多相关文章
- MVC中使用分部视图参数,改变分部视图连接样式
MVC中使用分部视图参数,改变分部视图连接样式! Controller代码 [ChildActionOnly] public ActionResult Navigator(int tag) { ret ...
- 如何应用ASP.NET MVC中的分部视图
概述: 在ASP.NET Web Form的开发经验中,对于User Control使用比较频繁,可以减少重复的代码,利于页面模块化,这个概念也被引入了ASP.NET MVC.即“分部视图”. 1.创 ...
- asp.net mvc视图中嵌套分部视图
asp.net mvc中Layout相当于webForm中母版页,分部视图相当于webForm中的用户控件. 下面例子是一个视图如何嵌套分部视图: A是分部视图,B是一般视图(A,B中的代码省略) 我 ...
- 爱上MVC~ajax调用分部视图session超时页面跳转问题
回到目录 这个问题出现了很多年了,都没有解决,问题是这样的,有一个需要授权才可以访问的分部视图,在一个view中使用ajax的方法去调用它,然后更新页面的局部DIV,这时,如果你长时间不操作,sess ...
- [转载]ASP.NET MVC 3的分部视图
1.什么是分部视图,我们应该什么时候应该用? 作为一个对ASP.NET MVC 模型很熟悉的开发者,他们自然想创建一个内容和代码都可以重用的组件,在web 窗体,我们可以创建一个web用户控件或web ...
- asp.net mvc 中的部分视图
使用方法:@Html.Action(action, controller)加载局部页面.例如在模板页中使用:@Html.Action("Contact", "Compan ...
- JAVAEE企业级应用开发浅谈之MVC 中的V-VIEW视图
Step1.情景概要 Hello,小伙伴们,好久不见,之前跟大家分享了三层架构与MVC思想,相信大家对于这两块内容有了相对清晰的个人认识了,既然我们讲到了MVC,这里我们接着这块内容继续往下深入,今天 ...
- 使用HTML辅助方法载入分部视图
在webform中我们用过user control可以减少重复代码也利于将页面模组化, 在mvc中 叫分部视图 Partial View. 也就是一个片段的view.可以利用Partial vie ...
- 关于 ASP.NET MVC 中的视图生成
在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通 ...
随机推荐
- 【php】php数组相关操作函数片段
下面这些都是我在工作中用到的函数,现在整理下. 判断是否是一个数组 function _is_array($value){ if (is_array($value)) { return true; } ...
- CSharp for Jupyter Notebook
之前说有机会就说下Linux下如何搭建C#版的交互编程,今天写篇文章还债^_^ Win下比较简单,可以自己看官方文档,下面逆天带大家搭建下Linux下的环境(官方方法有问题) 在线预览:https:/ ...
- Java Number & Math 类
// java.lang.Math 常用 // xxxValue() 方法用于将 Number 对象转换为 xxx 数据类型的值并返回. System.out.println(((Integer) 5 ...
- OpenLayers学习笔记(二)— QML与HTML通信之画图
作者: 狐狸家的鱼 Github: 八至 本文链接:QML与 HTML通信—实现QML中点击功能按钮在地图上画图 一.HTML-map var drarGraphic; var drawType;fu ...
- pycharm 出现 "PEP:8 expected 2 blank lines ,found 0"
https://blog.csdn.net/modangtian/article/details/79687623 这句话的意思是“有两个空白行,但是没有发现.” 在声明函数的那一行的上方必须有两行的 ...
- 为什么 管理工具里没有Internet(IIS)管理器选项
如上图,localhost页能打开了,但是管理工具里没有iis管理器,主要原因是安装iis时候没有选择web管理工具,选取安装上就 有了
- 第十一节,全连接网络中的优化技巧-过拟合、正则化,dropout、退化学习率等
随着科研人员在使用神经网络训练时不断的尝试,为我们留下了很多有用的技巧,合理的运用这些技巧可以使自己的模型得到更好的拟合效果. 一 利用异或数据集演示过拟合 全连接网络虽然在拟合问题上比较强大,但太强 ...
- TODO maven学习笔记
maven是什么? 我的体会 我理解得maven就是一个构建工具,可以做一些项目得整合操作,我们把一些常见得操作,封装在maven里面,并给它命名成 clean,test,compile,这些步骤都是 ...
- (链表 双指针) leetcode 142. Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. To r ...
- lucene之中文分词及其高亮显示(五)
中文分词:即换个分词器 Analyzer analyzer = new StandardAnalyzer();// 标准分词器 换成 SmartChineseAnalyzer analyze ...