ASP.NET MVC中分部视图的应用方法
概述:
在ASP.NET Web Form的开发经验中,对于User Control使用比较频繁,可以减少重复的代码,利于页面模块化,这个概念也被引入了ASP.NET MVC.即“分部视图”。
什么是分部视图,我们应该什么时候应该用?
作为一个对ASP.NET MVC 模型很熟悉的开发者,他们自然想创建一个内容和代码都可以重用的组件,在web 窗体,我们可以创建一个web用户控件或web服务器控件。但是在MVC,我们应该用分部视图,在这个概念的角度看,对任何情景的应用情景都应该有用。
在应用程序中,每一页上都显示这个股票行情
在应用程序中,一个日历控件显示在多个页面中
一个登录框
用于在多个页面上的社交网络组件,如Facebook的Like按钮。
虽然ASP.NET MVC 的分部视图,在语法和功能这两个不同的角度,理论上可以理解为用户控件。WEB用户控件在WEB窗体中使用ViewState、PostBacks, and Events 。而在MVC的分部视图,不使用任何上述技术管理状态。正如ASP.NET Web用户控件做的,分部视图,可以挖掘到你的应用程序以及其他应用程序组件之间的数据共享中的模型。
1、创建分部视图:
在解决方案管理器中,找到Views文件夹下的Shared文件夹,右键添加视图,选择创建为分部视图,如图:
2、修改分部视图:
<p>分部视图中的p元素</p>
3,在其他视图中引用分布视图:
@Html.Partial("~/Views/Shared/IncludePart.cshtml"); <p>原视图中的p元素</p>
效果如图所示:
4,第二种引用方法,代码如下:
@Html.Action("Test","Home") <p>原视图中的p元素</p>
并且修改Home控制器中的Test动作方法,代码如下:
public ActionResult Test() { return View("~/Views/Shared/IncludePart.cshtml"); }
运行后的效果与3中的一致。
5,可以向Action中传递参数,代码如下:
@Html.Action("Test", "Home", new { name = "SharpL", id = 1 }) <p>原视图中的p元素</p>
修改分部视图中的代码为:
<p>我是分部视图</p> <p>博客名为:@ViewBag.name</p> <p>博客的id为:@ViewBag.id</p>
修改Home控制器中Test动作方法的代码如下:
public ActionResult Test(string name,int id) { ViewBag.id = id; ViewBag.name = name; return View("~/Views/Shared/IncludePart.cshtml"); }
运行后的效果如图:
6,普通的视图也可以作分部视图使用
代码如下:
@Html.Partial("~/Views/View1.cshtml")
其中View1为普通视图如下:
<p>我是普通视图中的p元素</p>
效果如图所示:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
- hust--------The Minimum Length (最短循环节)(kmp)
- hdu-----(3746)Cyclic Nacklace(kmp)
- javaSE之如何将一个文件复制到另一个文件
- 将文件字节输出流写入到文本中
- javaSE之如何将一个文档显示出来(,txt,.doc,.....)
- Git -- 分支与合并 (命令行+可视化工具p4merge)
- java之如何实现调用启动一个可执行文件,exe
- file类之目录
- 理解Go语言Web编程(上)
- 理解Go语言Web编程(下)
- 呆呆的io流输入输出的一些基础
- 机器人 Go 语言库:Gobot
- poj------2406 Power Strings
- 使用Django基础模板搭建自己的知识库
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spark UDF加载外部资源
- Flink SQL FileSystem Connector 分区提交与自定义小文件合并策略
- Facebook面试题: 用递归和迭代手写Array.prototype.flat()
- Kubernetes插件之ip-masq-agent
- 抽丝剥茧Kotlin - 协程
- 使用Java8中的Optional类来消除代码中的null检查
- 通俗讲解从Transformer到BERT模型!
- 「R」使用有限混合模型
- Kaggle经典数据分析项目:泰坦尼克号生存预测!
- 零基础学习梯度下降算法
- Spring JPA 依赖配置
- Spring JPA 核心概念
- Spring JPA 查询
- 初学者指南:利用SVD创建推荐系统
- 聊一聊面试中经常被问到的Tree Shaking