Partial View 顾名思义就是Html代码片段,因此可以用Partial View 把部分的Html或显示逻辑包装起来,方便多次使用。

Partial View 需要放在Views/Shared 目录下,任何Controlller 下的ActionView 都可以载入。

如何载入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 用法相关推荐

  1. MVC 之 Partial View 用法

    Partial View 顾名思义就是Html代码片段,因此可以用Partial View 把部分的Html或显示逻辑包装起来,方便多次使用. Partial View 需要放在Views/Share ...

  2. html.action 访问分部视图,MVC+EF 随笔小计——分部视图(Partial View)及Html.Partial和Html.Action差异...

    Partial View指可以应用于View中以作为其中一部分的View的片段(类似于之前的user control), 可以像类一样,编写一次, 然后在其他View中被反复使用. 一般放在" ...

  3. 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 ...

  4. 截取视图某一段另存为部分视图(Partial View)

    在做ASP.NET MVC后台管理程序时,根据程序需要,Isus.NET需要实现一个功能,就是动态截取视图某一段另存为部分视图Partial View. 思路为在视图中,使用jQury的程序截图以及P ...

  5. 5. 深入研究 UCenter API 之 MVC 网站下的用法(转载)

    1.  深入研究 UCenter API 之 开篇 (转载) 2.  深入研究 UCenter API 之 通讯原理(转载) 3.  深入研究 UCenter API 之 加密与解密(转载) 4.  ...

  6. 分部视图 Partial View

    Partial View:可以应用于其他View中以作为其中一部分的View的片段.像类(class)一样,编写一次, 然后在其他View中被反复使用.(就是为了避免冗余,写一个通用的view,当用到 ...

  7. MVC5+EF6 入门完整教程6 :分部视图(Partial View)

    本篇我们谈谈分部视图(Partial View). 上篇文章提到过Partial和Action这两个helper, 本篇文章主要就结合这两个helper来讲解分部视图(Partial View)的应用 ...

  8. asp.net mvc(十一)自定义view engine

    当创建一个asp.net mvc 1.0的项目后,在web工程中都会出现Views文件夹,这里面就是我们存放View Page或者是partial view的地方.而且系统对于Controller的名 ...

  9. Html.BeginForm 与Section、Partial View 和 Child Action

    该方法用于构建一个From表单的开始,他的构造方法为:  Html.BeginForm("ActionName","ControllerName",FormMe ...

最新文章

  1. java 文件压缩 解压_Java文件压缩与解压缩(一)
  2. 怎样的财报让百度市值一夜暴涨400亿?净利逆势大涨219%;李彦宏:将在中国经济的复苏中受益...
  3. mysql bundle.tar_MySQL 5.6 Bundle Tar安装
  4. Spring工作原理分析
  5. 大学计算机基础python第二次作业_python第二次作业-titanic数据集练习
  6. 解决sql2008附加不了2005的数据库文件的问题
  7. 华为鸿蒙智慧屏_华为智慧屏X65将于4月8日发布搭载了鸿蒙OS操作系统
  8. SQL数据库修复/数据库置疑修复
  9. 微信打不开MP4文件 (记录编码问题)
  10. 任意顺序的四个点获取矩形的中心点,长宽和角度
  11. linux版高德导航软件下载,高德导航2017
  12. 微信文章如何自动排版
  13. MySQL Flashback拯救手抖党
  14. Apache Flink源码阅读环境搭建
  15. 稳定性资源问题,内存上涨
  16. 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工
  17. 关于使用正则表达式进行文本替换
  18. Python-知识点Demo练习
  19. 惠州技校那间有读计算机网络的,惠州有哪些公办职校中专学校
  20. 如何快速优雅地导入第三方Android项目

热门文章

  1. 网友怒批“Linux难敌视窗新七大理由”之我见
  2. linux驱动实例之74HC595
  3. Autolisp 通过关键字合并图层
  4. 亚马逊、Shopee、美客多店铺出单量如何提高?有何方法?
  5. 3.1HTML网页之iframe框架
  6. 用命令提示符操作数据库
  7. python之matplotlib制作双Y轴图含详细代码解释
  8. HTTPS是什么? What is HTTPS?
  9. 四大行计算机待遇,Re: 四大行大概的待遇,不要再猜了,没意思(转载) - 找工作啦(Job)版 - 北大未名BBS...
  10. Android 全屏显示设置