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

在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 的内容,由于字母ac :)

 

假设在这样的情况下想调用 ViewUserControl.cshtml

 

则须要写全路径,return PartialView(~/Views/Home/ViewUserControl.cshtml);

 

当想訪问的 Partial View or View User Control 在不同文件夹时,也能够通过全路径的方式訪问。

 

Hope this helps,

Sandy

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118428.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux共享文件夹权限设置_修改权限linux

    linux共享文件夹权限设置_修改权限linuxLinux共享文件夹方法1:赋权限chmod777(共享文件夹路径)结果:赋权失败方法2:添加到组分析:给用户权限可以看两个地方,首先第一列是权限情况,分别为超级管理员root用户,组用户,普通用户。经查看我们发现share文件夹,root用户和组用户都有权限,然后我们查看第四列组用户的组名为vboxsf解决思路:把普通用户添加到vboxsf组里面,然后重启。#登陆到普通用户,输入如下命令sudousermod-a-Gvboxsf$(whoami)#

    2025年7月11日
    6
  • CCCardinalSplineBy概念

    CCCardinalSplineBy概念

    2021年12月2日
    40
  • 云服务器和虚拟主机有哪些区别

    云服务器和虚拟主机有哪些区别虚机主机就是利用技术把一台服务器分成多个“虚拟”的主机,这些划分出来的主机具有独立的域名,和具有完整的Internet服务器功能,划分出来的虚拟主机共享服务器的宽带和IP。虚机主机之所以使用率较高,是因为相对于购买服务器和租用专线的费用,虚机主机价格便宜,操作简单。但虚机主机没有独立的操作系统,只能通过提供的控制面板操作。虚拟主机由于是共享主机,稳定性较差,访问速度有限。云服务器又叫云主

    2022年6月25日
    30
  • 第八章:sqoop数据迁移工具

    第八章:sqoop数据迁移工具第八章:sqoop数据迁移工具

    2022年4月23日
    57
  • 微信模拟地理位置_微信伪装地理位置是什么个原理「建议收藏」

    微信模拟地理位置_微信伪装地理位置是什么个原理「建议收藏」展开全部微信的定位数据来源主要有,基站定位、GPS定位。原理主体为:通过劫持代码关闭636f70793231313335323631343130323136353331333366306537从基站获取位置程序运行,伪造CELLID伪造WIFIMAC地址通过Xposed模块进行模拟地理位置、基站信息并上传伪装信息到微信客户端进行系统欺骗进而达到伪装地理位置的目的。扩展资料:微信定位功能实践上…

    2022年6月13日
    35
  • Java 图片 滑动 解锁「建议收藏」

    Java 图片 滑动 解锁「建议收藏」滑动解锁功能大家都不陌生,类似于如下这种:公司近期也要求实现类似的功能,百度各种文章,总算实现了一个比较糙的版本,保密等原因就不贴完成图了。我觉得难点在于滑块图和背景图的处理。图片处理原理我粗略的理解,图片就是一个二维的直角坐标系的一部分,(x,y)就是对应位置的一个像素点,可以操作某一个像素点,比如改变颜色,设置透明度等。Java中使用BufferedImage完成图…

    2022年6月18日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号