ASP.Net MVC PartialView的应用
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的应用相关推荐
- Asp.net mvc partialView
一.部分视图 PartialView (分部视图),这是在使用asp.net mvc 中首次知道的的名称,但是ASP.NET MVC 里的部分视图的概念对使用过webForm的人来说一点都不陌生,相当 ...
- ASP.NET MVC PartialView用法
子页面AreaSelect.cshtml页面的Controller代码: public ActionResult AreaSelect() {return PartialView(); } 父页面前台 ...
- asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染...
在asp.net mvc 使用ajax请求获取数据的时候,我们一般是返回json或者xml,然后解析这些数据进行渲染,这样会比较麻烦,可以请求一个 分部action,返回一个分部视图 直接可以渲染,不 ...
- 在asp.net mvc中使用PartialView返回部分HTML段
问题链接: MVC怎样实现异步调用输出HTML页面 该问题是个常见的 case, 故写篇文章用于提示新人. 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewRes ...
- 如何在FineUIMvc(ASP.NET MVC)视图中绑定多个模型?
起因 这是知识星球内的一个网友提出的,按理说ASP.NET MVC中一个视图只能绑定一个模型(Model),在视图顶部标识如下: @model IEnumerable<FineUICore.Ex ...
- 从零开始学习 ASP.NET MVC 1.0 (三) Controller/Action 深入解析与应用实例 【转】
一.摘要 一个Url请求经过了Routing处理后会调用Controller的Action方法. 中间的过程是怎样的? Action方法中返回ActionResult对象后,如何到达View的? 本文 ...
- ASP.NET MVC编程——视图
1Razon语法 使用@符号后接C#或VB.NET语句的方式. 基本规则 1)变量 @后直接变量即可 2)代码块 为使用表达式或多行代码,@后跟大括号将多行代码包括在大括号中 3)"+&qu ...
- 七天学会ASP.NET MVC(七)——创建单页应用
目录 引言 最后一篇学什么 实验32-整理项目组织结构 关于实验32 实验33--创建单页应用--第一部分-安装 什么是Areas? 关于实验33 实验34--创建单页应用--第二部分-显示Emplo ...
- 在ASP.NET MVC中进行排序
在上一篇文章中曾经说了一个排序,当然,那个是客户端的排序,能力有限. 但是在我的项目中却真的就需要一个排序功能,鄙人不才,能力有限,写了一堆丑陋的代码,仅实现了功能,希望路过的神们review下. 好 ...
最新文章
- 一致 先验分布 后验分布_浅谈Loki分布式架构中的一致性哈希
- 1010 Radix
- 运行个Hello Word也能出Bug?Python、Java、C++等16种语言中枪,最严重可导致文件丢失...
- 代码规范之华为公司代码规范
- pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用
- 【交往智慧】005.做一个愿意聆听的人
- oracle明文传输http,oracle密码在网络传输中的安全问题
- mysql连接池源码_一个JAVA数据库连接池实现源码
- Java 容器之 Connection栈队列及一些常用
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- 图谱特征与卷积神经网络的名优大米无损鉴别
- 初学Jmeter的摘抄学习总结----------基础知识篇
- 72张三国历史演变地图
- Solidworks工程图模板之自定义文件属性与零件图关联
- 这个双十一,我被淘宝“套娃”游戏整懵了
- 痛苦的挣扎--msp430g2553我恨你!
- 移动用户免费领取15G流量(秒到)
- 8.dfs--王子救公主(遍历迷宫,王子和公主访问过同一位置,即成功救公主)
- excel用条件格式设置隔行变色
- 数据安全问题已成隐患,看vivo如何让“用户数据”重新披甲