【MVC】AJAX+PartialView实现商城首页的楼层加载

使用AJAX实现楼层加载的例子已经非常多,但是html代码大都是手动拼接的,编写不便,而且难以维护。

下面就使用AJAX+PartialView来实现

1.html代码

<!--楼层1开始-->
<div class="floor"  id="floor1">

</div>
<!--楼层1结束-->
<!--楼层2开始-->
<div class="floor"  id="floor2">

</div>
<!--楼层2结束-->

2.js代码

<script type="text/javascript">
    var successload = new Array(); //已加载楼层
     //滚动条滚动
    $(window).scroll(function () { scrollload(); });

    //滚动条滚动事件
    function scrollload() {
        var scrolltop = $(this).scrollTop();
        //当内容滚动到底部时加载新的内容
        $(".floor").each(function (index, value) {
            if (scrolltop + $(window).height() >= $(this).offset().top && $(this).offset().top + $(this).height() >= scrolltop) {
                if ($.inArray(index + 1, successload) == -1) {
                    loadFloor(index + 1);
                    successload.push(index + 1);
                }
            }
        });
    }
    //楼层商品绑定
    function loadFloor(loadIndex) {
        if (loadIndex == 1) {
            $.ajax({
                url: $("#GetProductsUrl").val(),
                type: "POST",
                dataType: "html",//格式是html
                success: function (data) {
                    $("#floor1").html(data);
                },
                error: function (msg) {
                    alert("error:" + msg.responseText);
                }
            });
        }
        if (loadIndex == 2) {
            $.ajax({
                url: $("#GetProductsUrl").val(),
                type: "POST",
                dataType: "html",//格式是html
                success: function (data) {
                    $("#floor2").html(data);
                },
                error: function (msg) {
                    alert("error:" + msg.responseText);
                }
            });
        }
    }
</script>

3.控制器

[HttpPost]
public ActionResult GetProducts()
{ return PartialView("Products");
}

4.PartialView页面

@{
    Layout = null;
}

<p>welcome</p>
时间: 2024-10-17 10:39:05

【MVC】AJAX+PartialView实现商城首页的楼层加载的相关文章

Ajax的ActionLink方法(适用于异步加载)

8.2.1  AJAX的ActionLink方法 在Razor视图中,AJAX辅助方法可以通过Ajax属性访问.和HTML辅助方法类似,Ajax属性上的大部分AJAX辅助方法都是扩展方法(除了AjaxHelper类型之外). Ajax属性的ActionLink方法可以创建一个具有异步行为的锚标签.假如要在打开的页面的底部为MVC Music Store添加一个"daily deal"链接,要求在用户单击链接时是在当前页面上显示打折扣的专辑的详细信息,而不是在一个新的页面中显示. 为了实

jQuery加载外部文件的方式get、post、ajax、load的区别及异步加载的实现

一.$.post(url, [data], [callback], [type])  url (String) : 发送请求的URL地址. data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示. callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法). type (String) : (可选)官方的说明是:Type of data to be sent.其实应该为客户

mui 框架中结合mui.ajax实现 下拉刷新和上拉加载功能

实现方式与之前写的jquery weui 下拉刷新和上拉加载功能有点相似,以下是实现过程! 后台返回的数据格式: 页面代码布局: <header id="header" class="mui-bar mui-bar-nav"> <h1 class="mui-title">订单列表</h1> <a class="mui-icon mui-pull-right iconfont icon-tuich

ajax实现下拉菜单无刷新加载更多

1 $(function() { 2 var page = 1; 3 var discount = $('#discount'); 4 var innerHeight = window.innerHeight; 5 var timer2 = null; 6 $.ajax({ 7 url: '/lightapp/marketing/verify/apply/list?page=1', 8 type: 'GET', 9 dataType: 'json', 10 timeout: '1000', 11

VS2013新建MVC项目时弹出此模板尝试加载组件程序集”NuGet.VisualStudio.Interop,Version=1.0.0.0.......&quot; 的解决办法

电脑刚装完系统,下载了最新版的VisualStudio2013,安装完毕后打算新建项目试一下是否好用,选择新建ASP.NET MVC项目后,稍等片刻,发现VS弹出以下窗口: 于是顿感纳闷,重启系统后再尝试亦是如此.折腾一番,发现原来是VisualStudio从2012版本就开始使用NuGet来管理项目和程序集引用了.出现这个问题是因为没有安装NuGet包管理器.然后果断在VS的"工具>>扩展和更新>>联机"中搜索"NuGet Package Manag

Spring MVC 中请求返回之后的页面没法加载css、js等静态文件

1.是否被拦截,这个在Web.xml配置中servlet拦截是“/”,如果是则 a.使用spring MVC 的静态资源文件 <!-- 静态文件访问,主要是针对DispatcherServlet的拦截是/的--> <mvc:annotation-driven /> <mvc:resources location="/image/" mapping="/image/**"/> <mvc:resources location=&

Ajax在jQuery中的应用(加载异步数据、请求服务器数据)

加载异步数据 jQuery中的load()方法 load(url,[data],[callback]) url:被加载的页面地址 [data]:可选项表示发送到服务器的数据,其格式为 key/value . [callback]:可选项表示加载成功后,返回至加载页的回调函数. 全局函数 getJSON() $.getJSON(url,[data],[callback]) <div class="container col-lg-12"> <div style=&quo

HTML5商城开发一 楼层滚动加载数据

对于楼层加载在以前只是个想法,从来没实现过,刚好项目中碰到,再此总结一下 场景:HTML5,局部商品列表信息滚动(局部滚动条) 1.通过jq设置subCategoryScroll的高度为屏幕显示高度(假设为100),设置productlist的高度为列表信息的实际高度(假设为300) <div id="subCategoryScroll" style="overflow: hidden; overflow-y: scroll;"> <ul clas

使用System.Web.Mvc.Ajax

摘自Rocky Ren 一.使用System.Web.Mvc.Ajax 1.1 System.Web.Mvc.Ajax.BeginForm 1.2 System.Web.Mvc.Ajax.ActionLink 二.手工打造自己的“非介入式”Javascript” 一.使用System.Web.Mvc.Ajax 1.1 System.Web.Mvc.Ajax.BeginForm 第一步:用Ajax.BeginForm创建Form 复制代码 @using (Ajax.BeginForm( new A