ASP.Net MVC PartialView的应用

1.PartialViewResult,Controller类提供了4种重载方法

protected internal PartialViewResult PartialView();
protected internal PartialViewResult PartialView(object model);
protected internal virtual PartialViewResult PartialView(string viewName, object model);
protected internal PartialViewResult PartialView(string viewName);

2.PartialView 一般最前加“_”后面加上Partial以便区分,例如实例中“_DetailPartial”

3.引用一个PartialView到一个视图页面里面,有几种方法,并且比较如下:
(此段落引用 _Cassie的 Asp.net mvc partialView文章)

    1、Partial()  Action()  2、RenderPartial() 3、RenderAction() 4、RenderPage()这些方法有什么差别呢,分析他们的差别,可以让我们在不同的时候选择不同的方法。*第一组:Partial与RenderPartial 方法*Razor 语法:@Html.Partial() 与 @{Html.RenderPartial();}Partial 可以直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),然后缓存起来,最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。*第二组:RenderPartial 与 RenderAction 方法*Razor 语法:@{Html.RenderPartial();}  与 @{Html.RenderAction();}RenderPartial 不需要创建 Controller 的 Action ,而 RenderAction 需要在 Controller 创建要加载的Action。RenderAction 会先去调用 Contorller的 Action ,最后再呈现视图,所以这里 页面会在 发起一个链接。如果这个部分视图只是一些简单 的 html 代码,请使用 RenderPartial。 但如果这个部分视图 除了有html 代码外,还需要 通过 读取数据库里的数据 来渲染,就必须使用 RenderAction 了,因为 它可以在Action 里调用 Model里的方法读取数据库,渲染视图后在呈现,而 RenderPartial 没有 Action,所以无法做到。*第三组:RenderAction 与 Action*Razor 语法:@{Html.RenderAction();}  与@Html.Action();Action 也是直接输出,和 Partial 一样,也存在一个转换的过程。不如 RenderAction 直接输出到 当前HttpContext 的效率高。*第四组:RenderPage 与 RenderPartial 方法*Razor 语法:@{Html.RenderPartial();}  与@RenderPage()也可以使用 RenderPage 来呈现部分,但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传递。而RenderPartial 可以使用原来视图的 Model 和ViewData。

4.索引PartialView方式
@Html.Partial(“ViewName”) 首先在当前目录下搜索ViewName,如果没有找到,再去Share目录查找ViewName名字。如果这两个目录下都没有则会报错。

@Html.Partial(“ViewName.cshtml”) View必须在相同目录下(根据文件全名称调用)。

@Html.Partial("~/Views/Folder/ViewName.cshtml")根据应用程序的根目录去查找。

@Html.Partial("…/Folder/ViewName.cshtml") 使用相对路径去定位。

5.实例展示

Controller:

public ActionResult Index()
{         return View(db.UserInfo.OrderBy(o=>o.ID).ToList());
}public ActionResult Detail(string name)
{if (name == null){return new HttpStatusCodeResult(HttpStatusCode.BadRequest);}else{var query = db.UserInfo.Find(name.Trim());return PartialView("_DetailPartial", query);}
}

Index:
注意1.ajax返回值类型为html,并InnerHtml到指定div中
注意2.获取行内主键值,作为Click事件的参数传入后台

@using WebApplication21.Models;
@model IEnumerable<UserInfo><html>
<head><script type="text/javascript" src="~/Scripts/jquery-3.4.1.js"></script>
</head>
<body><h2>This is an Index</h2><h4>UserInfo</h4><hr/><table class="table"><thead><tr><th>ID</th><th>Name</th><th>Age</th><th>Gender</th><th></th></tr></thead><tbody>@foreach(var item in Model){<tr><td>@item.ID</td><td>@item.Name</td><td>@item.Age</td><td>@item.Gender</td><td><button class="btn btn-success" onclick="GetDetail('@item.Name')">Detail</button><a href="/UserInfo/Edit?Name=@item.Name" class="btn btn-danger"> Edit </a></td>                    </tr>}</tbody></table><hr/><div id="detail"></div><script type="text/javascript">function GetDetail(name) {           $.ajax({url: "/UserInfo/Detail",type: "GET",dataType: "html",data: { "Name": name },success: function (data) {$("#detail").html(data);}});};       </script>
</body>
</html>

_DetailPartial:

@using WebApplication21.Models;
@model UserInfo<html>
<head><script type="text/javascript" src="~/Scripts/jquery-3.4.1.js"></script>
</head>
<body><br/><hr/><table class="table"><thead><tr><th>Name</th><th>Address</th><th>Phone</th><th>LastUpdateTime</th></tr></thead><tbody> <tr><td>@Model.Name</td><td>@Model.Address</td><td>@Model.Phone</td><td>@Model.LastUpdateTime</td></tr>            </tbody></table>
</body>
</html>

ASP.Net MVC PartialView的应用相关推荐

  1. Asp.net mvc partialView

    一.部分视图 PartialView (分部视图),这是在使用asp.net mvc 中首次知道的的名称,但是ASP.NET MVC 里的部分视图的概念对使用过webForm的人来说一点都不陌生,相当 ...

  2. ASP.NET MVC PartialView用法

    子页面AreaSelect.cshtml页面的Controller代码: public ActionResult AreaSelect() {return PartialView(); } 父页面前台 ...

  3. asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染...

    在asp.net mvc 使用ajax请求获取数据的时候,我们一般是返回json或者xml,然后解析这些数据进行渲染,这样会比较麻烦,可以请求一个 分部action,返回一个分部视图 直接可以渲染,不 ...

  4. 在asp.net mvc中使用PartialView返回部分HTML段

    问题链接: MVC怎样实现异步调用输出HTML页面 该问题是个常见的 case, 故写篇文章用于提示新人. 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewRes ...

  5. 如何在FineUIMvc(ASP.NET MVC)视图中绑定多个模型?

    起因 这是知识星球内的一个网友提出的,按理说ASP.NET MVC中一个视图只能绑定一个模型(Model),在视图顶部标识如下: @model IEnumerable<FineUICore.Ex ...

  6. 从零开始学习 ASP.NET MVC 1.0 (三) Controller/Action 深入解析与应用实例 【转】

    一.摘要 一个Url请求经过了Routing处理后会调用Controller的Action方法. 中间的过程是怎样的? Action方法中返回ActionResult对象后,如何到达View的? 本文 ...

  7. ASP.NET MVC编程——视图

    1Razon语法 使用@符号后接C#或VB.NET语句的方式. 基本规则 1)变量 @后直接变量即可 2)代码块 为使用表达式或多行代码,@后跟大括号将多行代码包括在大括号中 3)"+&qu ...

  8. 七天学会ASP.NET MVC(七)——创建单页应用

    目录 引言 最后一篇学什么 实验32-整理项目组织结构 关于实验32 实验33--创建单页应用--第一部分-安装 什么是Areas? 关于实验33 实验34--创建单页应用--第二部分-显示Emplo ...

  9. 在ASP.NET MVC中进行排序

    在上一篇文章中曾经说了一个排序,当然,那个是客户端的排序,能力有限. 但是在我的项目中却真的就需要一个排序功能,鄙人不才,能力有限,写了一堆丑陋的代码,仅实现了功能,希望路过的神们review下. 好 ...

最新文章

  1. 一致 先验分布 后验分布_浅谈Loki分布式架构中的一致性哈希
  2. 1010 Radix
  3. 运行个Hello Word也能出Bug?Python、Java、C++等16种语言中枪,最严重可导致文件丢失...
  4. 代码规范之华为公司代码规范
  5. pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用
  6. 【交往智慧】005.做一个愿意聆听的人
  7. oracle明文传输http,oracle密码在网络传输中的安全问题
  8. mysql连接池源码_一个JAVA数据库连接池实现源码
  9. Java 容器之 Connection栈队列及一些常用
  10. Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
  11. 图谱特征与卷积神经网络的名优大米无损鉴别
  12. 初学Jmeter的摘抄学习总结----------基础知识篇
  13. 72张三国历史演变地图
  14. Solidworks工程图模板之自定义文件属性与零件图关联
  15. 这个双十一,我被淘宝“套娃”游戏整懵了
  16. 痛苦的挣扎--msp430g2553我恨你!
  17. 移动用户免费领取15G流量(秒到)
  18. 8.dfs--王子救公主(遍历迷宫,王子和公主访问过同一位置,即成功救公主)
  19. excel用条件格式设置隔行变色
  20. 数据安全问题已成隐患,看vivo如何让“用户数据”重新披甲

热门文章

  1. Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
  2. 不打不相识,苹果偷学微信代码
  3. 使用命令提示符进行转换GPT
  4. 不改注册表 用WinRAR制作纯粹绿色软件
  5. T400/500支持集成显卡/独立显卡切换,但在集成显卡模式下不支持2504扩展坞的DVI输出,必须切换到独显模式。
  6. 历史上三大骑士团的崛起与演变
  7. 22年最新抖音24小时主页最新更新视频批量监控抖音主页批量监控
  8. ansible 修改文件变量_Ansible自动化从零到入门
  9. STM32按键控制开关灯
  10. Tweepy抓取twitter数据 1