在asp.net mvc中使用PartialView返回部分HTML段
问题链接: MVC怎样实现异步调用输出HTML页面
该问题是个常见的 case, 故写篇文章用于提示新人。
在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewResultBase 同一时候它还有个兄弟PartialViewResult
相信聪明的你已经知道了它俩的差别了,没错 一个用于返回总体,还有一个返回局部(部分)。
如果我有这样一个需求,输入username,然后返回相关信息。之前的做法可能会是用json格式来返回用户的相关信息,然后到页面去渲染相关
的HTML,假设产生的相关HTML比較大的话,我还是建议你沿用之前的方案(返回json),由于传输的数据少,响应快一些。
反之,PartialViewResult 则是返回部分HTML 的不错选择。
以下就让我们看下怎样使用PartialViewResult:
Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
</head>
<body>
@RenderBody()
</body>
</html>
Index.cshtml
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>
PartialView Demo</h2>
<div>
Please write your name here
<input type='text' id='txtName' />
<input type='button' value='submit' id='btnOK' />
</div>
<br />
<div id='content'>
</div>
<script type="text/javascript">
$(function () {
$('#btnOK').click(function () {
var data = { Name: $('#txtName').val()};
$.ajax({
type: "POST",
url: '@Url.Action("PartialViewDemo", "Home")',
data: data,
datatype: "html",
success: function (data) {
$('#content').html(data);
},
error: function () {
alert("处理失败!");
}
});
});
});
</script>
ViewUserControl.cshtml (Partial View)
@model Sample.Models.PartialViewDemoViewModel
<div>
<h2>ViewUserControl.cshtml</h2>
@Model.dt
<br /><br />
Hello~ @Model.Name
</div>
or ViewUC.ascx (View User Control)
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Vancl.Sample.Models.PartialViewDemoViewModel>" %>
<div>
<h2>ViewUC.ascx</h2>
<%=Model.dt %>
<br /><br />
Hello~ <%=Model.Name %>
</div>
Model
public class PartialViewDemoViewModel
{
public string Name { set; get; }
public DateTime? dt { set; get; }
}
Action
[HttpPost]
public ActionResult PartialViewDemo(PartialViewDemoViewModel model)
{
model.dt = DateTime.Now;
return PartialView("ViewUserControl", model);
//return PartialView("ViewUC", model);
}
调用 Controller.PartialView方法时,能够指定 Partial View or View User Control 效果是一样的
不写后缀时,会查找同文件夹和Shared文件夹下的文件,也就是在同文件夹或Shared文件夹下时能够省略后缀名。
假设文件夹下存在同名的情况,会找第一个并返回。
eg: 同文件夹下有 ViewUserControl.ascx 和 ViewUserControl.cshtml
这时使用 return PartialView("ViewUserControl");
会返回 ViewUserControl.ascx 的内容,由于字母a在c前 :)
假设在这样的情况下想调用 ViewUserControl.cshtml
则须要写全路径,return PartialView("~/Views/Home/ViewUserControl.cshtml");
当想訪问的 Partial View or View User Control 在不同文件夹时,也能够通过全路径的方式訪问。
Hope this helps,
Sandy
转载于:https://www.cnblogs.com/zfyouxi/p/4370978.html
在asp.net mvc中使用PartialView返回部分HTML段相关推荐
- mvc5 返回html,在asp.net mvc中使用PartialView返回部分HTML段
该问题是个常见的 case, 故写篇文章用于提示新人. 相信聪明的你已经知道了它俩的区别了,没错 一个用于返回整体,另一个返回局部(部分). 假设我有这样一个需求,输入用户名,然后返回相关信息.之前的 ...
- Asp.net mvc中Controller的返回值
(1)EmptyResult:当用户有误操作或者是图片防盗链的时候,这个EmptyResult就可以派上用场,返回它可以让用户啥也看不到内容,通过访问浏览器端的源代码,发现是一个空内容: public ...
- [转载]Asp.net MVC中Controller返回值类型
Asp.net MVC中Controller返回值类型 在mvc中所有的controller类都必须使用"Controller"后缀来命名 并且对Action也有一定的要求: 必须 ...
- 通过源代码研究ASP.NET MVC中的Controller和View(三)
通过源代码研究ASP.NET MVC中的Controller和View(一) 通过源代码研究ASP.NET MVC中的Controller和View(二) 第三篇来了,上一篇我已经把VirtualPa ...
- asp.net mvc 中的部分视图
使用方法:@Html.Action(action, controller) 加载局部页面. 例如在模板页中使用:@Html.Action("Contact", "Comp ...
- 通过源代码研究ASP.NET MVC中的Controller和View(二)
通过源代码研究ASP.NET MVC中的Controller和View(一) 在开始之前,先来温习下上一篇文章中的结论(推论): IView是所有HTML视图的抽象 ActionResult是Cont ...
- ASP.NET MVC中你必须知道的13个扩展点
ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...
- Asp.net mvc中的Ajax处理
在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...
- 在 ASP.NET MVC 中使用 Chart 控件
在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以 ...
最新文章
- P1051 谁拿了最多奖学金
- rgb fusion检测不到显卡_7000元AMD平台装机:3600X配RTX2060显卡怎么样
- Linux系统调用FAQ
- 版本控制系统 之一 概念、分类、常见版本控制系统(CVS、SVN、BitKeeper、Git 等)
- 《乌合之众》读书笔记(part4)--含义最不确定的词语,往往拥有最强大的影响力
- 【Linux】用户与权限
- JDK 8中方便的新地图默认方法
- 升级计算机方案,关于计算机升级方案
- laravel 5.1 添加第三方扩展库
- 东方智慧和西方智慧的比较
- VC++多线程工作笔记0003---MFC中用户界面线程的相关操作
- IPLATUI----GRID删除
- jQuery回调、递延对象总结(中篇) —— 神奇的then方法
- 你们真的会追汉纸么?!
- IDEA登录LeetCode插件失败
- html移动端弹窗,移动端弹窗
- qtxlsx读写 excel
- 全智通A+常见问题汇总解答—A+库存盘点,点击生成盘点,生成错误的数据
- 计算机科学计数法符号,科学计数法怎么表示
- Moment.js 用法
热门文章
- mongodb java 学习_MongoDB学习(四):通过Java使用MongoDB
- android tv 悬浮窗口,android TV的自定义关机弹出框
- Oracle session解释
- 003_FastDFS分布式横向扩容和纵向添加storage
- 003_ActiveMQ管理后台
- 06_一对一和一对多
- 添加用户信息的方法java_添加用户的流程分析
- java分层命名_JAVA基础篇(5)-POJO的命名规则
- java 遍历写什么_Java文件遍历及文件读写
- 思科服务器与交换机链接配置文件,使用思科S系列交换机上的配置迁移工具转换配置文件...