MVC之Partial View 用法
Partial View 顾名思义就是Html代码片段,因此可以用Partial View 把部分的Html或显示逻辑包装起来,方便多次使用。
Partial View 需要放在Views/Shared 目录下,任何Controlller
下的Action
或 View
都可以载入。
如何载入Partial View?
MVC 的 HTML 辅助方法有个专门的方法载入分部View,方法名称为Partial
.
Partial有以下四种方式调用
方法原型 | 使用范例 |
---|---|
Partial(HtmlHelper,String)
|
Html.Partial("CustomerListControl")
|
Partial(HtmlHelper,string,Object)
|
Html.Partial("CustomerListControl",Model)
|
Partial(HtmlHelper,string,ViewDataDictionary)
|
Html.Partial("CustomerListControl",ViewData["Model"])
|
Partial(HtmlHelper,string,Object,ViewDataDictionary)
|
Html.Partial("CustomerListControl",Model,ViewData["Model"])
|
使用控制器载入分部View
public ActionResult CustomerListControl()
{Return PartialView();
}
使用 Html.Action 载入分部View
@Html.Action("CustomerListControl")
如何实现?
1 Models
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;namespace Step1.Models
{public class Product{public string Name{get;set;}public string Banner{get;set;}}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Step1.Models
{public class OrderModel{public Customer Customer{get;set;}public List<Product> ProductList{get;set;}}
}
2 DAL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Step1.DAL;
using Step1.Models;
namespace Step1.DAL
{public class DBContext{public static OrderModel GetOrderList(){OrderModel model = new OrderModel();model.Customer = new Customer() { CustomerID = "10000", CompanyName = "redwave" };model.ProductList = new List<Product>();for (int i = 0; i < 10; i++){Product p = new Product();p.Banner = string.Format("Banner{0}", i.ToString());p.Name = string.Format("ProductMame{0}", i.ToString());model.ProductList.Add(p);}return model;}}
}
3 Controller
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Step1.DAL;
namespace Step1.Controllers
{public class PartialViewController : Controller{//// GET: /PartialView/public ActionResult Index(){var model= DBContext.GetOrderList();return View(model);}}
}
4 Partial View
@using Step1.Models;
@using System.Collections;
@model IEnumerable<Product>
<table border="1" ><tr ><td>Name</td><td>Banner</td></tr>@foreach (var item in Model){<tr><td>@item.Name</td><td>@item.Banner</td></tr>}</table>
5 View
using Step1.Models;
@model OrderModel
@{ViewBag.Title = "Index";
}<h2>Index</h2>
<div><div>@Model.Customer.CompanyName</div><div>@Model.Customer.CustomerID</div><div>@Html.Partial("CustomerListControl",@Model.ProductList)</div>
</div>
6 项目结构
7 运行结果
MVC |分部视图 PartialView()
介绍如何定义
其实它和普通视图没有多大区别,只是创建分部视图的时候视图里没有任何内容,你需要什么标签你自己加。第二就是分部视图不会执行_ViewStart.cshtml
中的内容)
控制器
PartialViewDeomController
控制器
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcApp.Controllers { public class PartialViewDeomController : Controller { // // 分部视图的作用一般用于嵌到如一些正常的视图中去。(类似与自定义控件)相当于: Server.Execute(string path) public ActionResult PartialIndex() { //View()方法返回的视图默认都会去执行_ViewStart.cshtml中的内容 //return View(); //分部视图不会去执行_ViewStart.cshtml中的内容(分部视图以PartialView()返回) return PartialView(); } } }
PartialIndex 视图
<!--注意,创建分部视图后,视图里是没有任何东西的。自己需要什么标签,就加什么标签。这个视图的用法就是到时候嵌套到一些以View()返回的正常视图中去--> <select id="dp1"> <option value="0">湖南</option> <option value="1">广东</option> <option value="0">上海</option>> </select> <select id="dp2"> <option value="0">纽约</option> <option value="1">洛杉矶</option> <option value="0">华盛顿</option>> </select>
使用介绍(我们发现它与普通视图是差不多的)
PartialViewDeomController控制器
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcApp.Controllers { using MvcApp.Models; public class PartialViewDeomController : Controller { // // 分部视图的作用一般用于嵌到如一些正常的视图中去。(类似与自定义控件)相当于: Server.Execute(string path) public ActionResult PartialIndex() { var list = new List<T_UserInfo>() { new T_UserInfo(){Id=1,UserName="无盐海",Name="凡斌"}, new T_UserInfo(){Id=1,UserName="阿宝",Name="周晶"}, }; //分部视图不会去执行_ViewStart.cshtml中的内容(分部视图以PartialView()返回) return PartialView(list); } } }
PartialIndex视图
@model List<MvcApp.Models.T_UserInfo> <select id="dp1"> @{ foreach (var item in Model) { <option value="0">@item.Name</option> } } </select>
真实的使用介绍 (重点)
PartialViewDeomController控制器
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcApp.Controllers { using MvcApp.Models; public class PartialViewDeomController : Controller { public ActionResult Index() { return View(); } // 分部视图的作用一般用于嵌到如一些正常的视图中去。(类似与自定义控件)相当于: Server.Execute(string path) public ActionResult PartialIndex() { var list = new List<T_UserInfo>() { new T_UserInfo(){Id=1,UserName="无盐海",Name="凡斌"}, new T_UserInfo(){Id=1,UserName="阿宝",Name="黄雪辉"}, }; //分部视图不会去执行_ViewStart.cshtml中的内容(分部视图以PartialView()返回) return PartialView(list); } } }
Index视图与PartialIndex分部视图。(注意:这里是在Index视图里调用PartialIndex分部视图)
@{ Layout = null; } @using MvcApp.Models; <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src="~/Scripts/jquery-1.8.2.js"></script> </head> <body> <div id="loadData"></div> <div> <!--第一种方式:同一控制起下调用分部视图--> @Html.Partial("PartialIndex", new List<T_UserInfo>() { new T_UserInfo() { Id = 1, UserName = "无盐海", Name = "凡斌" }, new T_UserInfo() { Id = 1, UserName = "阿宝", Name = "周晶" }, }) <!--第二种方式:同一控制起下调用分部视图--> @{ Html.RenderPartial("PartialIndex", new List<T_UserInfo>() { new T_UserInfo() { Id = 1, UserName = "无盐海", Name = "凡斌" }, new T_UserInfo() { Id = 1, UserName = "阿宝", Name = "周晶" } }); } <!--第三种方式:可以跨控制器调用分部视图(注意:如果通过这种方式调用分部视图,如果在再PartialIndex这个action中有传参给分部视图,则在此处调用就不需要再传递参数了)--> @{Html.RenderAction("PartialIndex", "PartialViewDeom");} <!--第四种方式:也是可以跨控制器调用分部视图。和第三种是一样的--> @Html.Action("PartialIndex", new { controller = "PartialViewDeom" }) <!--第五种方式:用ajax来调用:如:jquery的Load()方法--> <script type="text/javascript"> $(function () { $("#loadData").load("/PartialViewDeom/PartialIndex"); //将PartialIndex分部视图中的内容加载到id为loadData这个元素中去 }) </script> </div>action </body> </html>
MVC之Partial View 用法相关推荐
- MVC 之 Partial View 用法
Partial View 顾名思义就是Html代码片段,因此可以用Partial View 把部分的Html或显示逻辑包装起来,方便多次使用. Partial View 需要放在Views/Share ...
- html.action 访问分部视图,MVC+EF 随笔小计——分部视图(Partial View)及Html.Partial和Html.Action差异...
Partial View指可以应用于View中以作为其中一部分的View的片段(类似于之前的user control), 可以像类一样,编写一次, 然后在其他View中被反复使用. 一般放在" ...
- html.partial mvc,MVC Html.Partial or Html.Action
问题 I am new to asp.net MVC so please bear with me. I need build a menu that repeats across multiple ...
- 截取视图某一段另存为部分视图(Partial View)
在做ASP.NET MVC后台管理程序时,根据程序需要,Isus.NET需要实现一个功能,就是动态截取视图某一段另存为部分视图Partial View. 思路为在视图中,使用jQury的程序截图以及P ...
- 5. 深入研究 UCenter API 之 MVC 网站下的用法(转载)
1. 深入研究 UCenter API 之 开篇 (转载) 2. 深入研究 UCenter API 之 通讯原理(转载) 3. 深入研究 UCenter API 之 加密与解密(转载) 4. ...
- 分部视图 Partial View
Partial View:可以应用于其他View中以作为其中一部分的View的片段.像类(class)一样,编写一次, 然后在其他View中被反复使用.(就是为了避免冗余,写一个通用的view,当用到 ...
- MVC5+EF6 入门完整教程6 :分部视图(Partial View)
本篇我们谈谈分部视图(Partial View). 上篇文章提到过Partial和Action这两个helper, 本篇文章主要就结合这两个helper来讲解分部视图(Partial View)的应用 ...
- asp.net mvc(十一)自定义view engine
当创建一个asp.net mvc 1.0的项目后,在web工程中都会出现Views文件夹,这里面就是我们存放View Page或者是partial view的地方.而且系统对于Controller的名 ...
- Html.BeginForm 与Section、Partial View 和 Child Action
该方法用于构建一个From表单的开始,他的构造方法为: Html.BeginForm("ActionName","ControllerName",FormMe ...
最新文章
- java 文件压缩 解压_Java文件压缩与解压缩(一)
- 怎样的财报让百度市值一夜暴涨400亿?净利逆势大涨219%;李彦宏:将在中国经济的复苏中受益...
- mysql bundle.tar_MySQL 5.6 Bundle Tar安装
- Spring工作原理分析
- 大学计算机基础python第二次作业_python第二次作业-titanic数据集练习
- 解决sql2008附加不了2005的数据库文件的问题
- 华为鸿蒙智慧屏_华为智慧屏X65将于4月8日发布搭载了鸿蒙OS操作系统
- SQL数据库修复/数据库置疑修复
- 微信打不开MP4文件 (记录编码问题)
- 任意顺序的四个点获取矩形的中心点,长宽和角度
- linux版高德导航软件下载,高德导航2017
- 微信文章如何自动排版
- MySQL Flashback拯救手抖党
- Apache Flink源码阅读环境搭建
- 稳定性资源问题,内存上涨
- 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工
- 关于使用正则表达式进行文本替换
- Python-知识点Demo练习
- 惠州技校那间有读计算机网络的,惠州有哪些公办职校中专学校
- 如何快速优雅地导入第三方Android项目
热门文章
- 网友怒批“Linux难敌视窗新七大理由”之我见
- linux驱动实例之74HC595
- Autolisp 通过关键字合并图层
- 亚马逊、Shopee、美客多店铺出单量如何提高?有何方法?
- 3.1HTML网页之iframe框架
- 用命令提示符操作数据库
- python之matplotlib制作双Y轴图含详细代码解释
- HTTPS是什么? What is HTTPS?
- 四大行计算机待遇,Re: 四大行大概的待遇,不要再猜了,没意思(转载) - 找工作啦(Job)版 - 北大未名BBS...
- Android 全屏显示设置