问题链接: 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.ascxViewUserControl.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段相关推荐

  1. mvc5 返回html,在asp.net mvc中使用PartialView返回部分HTML段

    该问题是个常见的 case, 故写篇文章用于提示新人. 相信聪明的你已经知道了它俩的区别了,没错 一个用于返回整体,另一个返回局部(部分). 假设我有这样一个需求,输入用户名,然后返回相关信息.之前的 ...

  2. Asp.net mvc中Controller的返回值

    (1)EmptyResult:当用户有误操作或者是图片防盗链的时候,这个EmptyResult就可以派上用场,返回它可以让用户啥也看不到内容,通过访问浏览器端的源代码,发现是一个空内容: public ...

  3. [转载]Asp.net MVC中Controller返回值类型

    Asp.net MVC中Controller返回值类型 在mvc中所有的controller类都必须使用"Controller"后缀来命名 并且对Action也有一定的要求: 必须 ...

  4. 通过源代码研究ASP.NET MVC中的Controller和View(三)

    通过源代码研究ASP.NET MVC中的Controller和View(一) 通过源代码研究ASP.NET MVC中的Controller和View(二) 第三篇来了,上一篇我已经把VirtualPa ...

  5. asp.net mvc 中的部分视图

    使用方法:@Html.Action(action, controller) 加载局部页面. 例如在模板页中使用:@Html.Action("Contact", "Comp ...

  6. 通过源代码研究ASP.NET MVC中的Controller和View(二)

    通过源代码研究ASP.NET MVC中的Controller和View(一) 在开始之前,先来温习下上一篇文章中的结论(推论): IView是所有HTML视图的抽象 ActionResult是Cont ...

  7. ASP.NET MVC中你必须知道的13个扩展点

         ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...

  8. Asp.net mvc中的Ajax处理

    在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...

  9. 在 ASP.NET MVC 中使用 Chart 控件

    在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以 ...

最新文章

  1. P1051 谁拿了最多奖学金
  2. rgb fusion检测不到显卡_7000元AMD平台装机:3600X配RTX2060显卡怎么样
  3. Linux系统调用FAQ
  4. 版本控制系统 之一 概念、分类、常见版本控制系统(CVS、SVN、BitKeeper、Git 等)
  5. 《乌合之众》读书笔记(part4)--含义最不确定的词语,往往拥有最强大的影响力
  6. 【Linux】用户与权限
  7. JDK 8中方便的新地图默认方法
  8. 升级计算机方案,关于计算机升级方案
  9. laravel 5.1 添加第三方扩展库
  10. 东方智慧和西方智慧的比较
  11. VC++多线程工作笔记0003---MFC中用户界面线程的相关操作
  12. IPLATUI----GRID删除
  13. jQuery回调、递延对象总结(中篇) —— 神奇的then方法
  14. 你们真的会追汉纸么?!
  15. IDEA登录LeetCode插件失败
  16. html移动端弹窗,移动端弹窗
  17. qtxlsx读写 excel
  18. 全智通A+常见问题汇总解答—A+库存盘点,点击生成盘点,生成错误的数据
  19. 计算机科学计数法符号,科学计数法怎么表示
  20. Moment.js 用法

热门文章

  1. mongodb java 学习_MongoDB学习(四):通过Java使用MongoDB
  2. android tv 悬浮窗口,android TV的自定义关机弹出框
  3. Oracle session解释
  4. 003_FastDFS分布式横向扩容和纵向添加storage
  5. 003_ActiveMQ管理后台
  6. 06_一对一和一对多
  7. 添加用户信息的方法java_添加用户的流程分析
  8. java分层命名_JAVA基础篇(5)-POJO的命名规则
  9. java 遍历写什么_Java文件遍历及文件读写
  10. 思科服务器与交换机链接配置文件,使用思科S系列交换机上的配置迁移工具转换配置文件...