zoukankan      html  css  js  c++  java
  • 在ASP.NET MVC中使用Juqery实现页面局部刷新

    自己做的一个实验,留作备忘,此实例包括扩一下几个文件:
    1、MyMovieController.cs
    2、Index.aspx
    3、ViewUserControl1.ascx
    4、movie类
    其中MyMovieController.cs不用再说了,代码如下
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Mvc.Ajax;
    
    namespace MyMVC.Controllers
    {
        public class MYMovieController : Controller
        {
            //
            // GET: /MYMovie/
    
            public ActionResult Index()
            {
                return View();
            }
            public ActionResult Search(string query, int? page)
            {
                List<movie> movies = movie.Movies
                    .Where(r => r.MovieName.Contains(query))
                    .OrderByDescending(r => r.MovieName)
                    .Skip((page ?? 0) * 4)
                    .Take(4)
                    .ToList();
                if (Request.IsAjaxRequest())
                {
                    int moiveCount=movie.Movies.Where(r => r.MovieName.Contains(query)).Count();
                    ViewData["totalPage"] = (int)Math.Ceiling(moiveCount / 4d);
                    ViewData["query"] = query;
                    return View("ViewUserControl1", movies);
                }
                else
                {
                    return View();
                }
            }
    
        }
    }
    MyMovieController.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace MyMVC
    {
        public  class movie
        {
            public string MovieName { get; set; }
            public string Category { get; set; }
    
            public movie(string movieName, string category)
            {
                this.MovieName = movieName;
                this.Category = category;
            }
    
            public static List<movie> Movies
            {
                get
                {
                    return new List<movie>
                    {
                        new movie("龙行天下","动作片"),
                        new movie("虎胆龙威","动作片"),
                        new movie("龙虎门","动作片"),
                        new movie("猛龙过江","动作片"),
                        new movie("龙的传人","动作片"),
                        new movie("龙之战","动作片"),
                        new movie("铁甲威龙","动作片"),
                        new movie("见龙卸甲","动作片")
                    };
                }
            }
        }
    }
    movie.cs
    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MyMVC.movie>>" %>
    
        <table>
            <thead>
            <tr>
                <th>
                    MovieName
                </th>
                <th>
                    Category
                </th>
            </tr>
            </thead>
            <tbody>
        <% foreach (var item in Model) { %>
            
            <tr>
                <td>
                    <%= Html.Encode(item.MovieName) %>
                </td>
                <td>
                    <%= Html.Encode(item.Category) %>
                </td>
            </tr>
           
        <% } %>
          </tbody>
    
        </table>
    
        <p>
            <% 
                int totalPage = (int)ViewData["totalPage"];
                string query = ViewData["query"].ToString();
                for (var i = 0; i < totalPage; i++)
                {
                    %>
                        <a href="#" title="<%=i %>"><%= Html.Encode(i+1) %></a>
                    <% 
                }
            %>
        </p>
    ViewUserControl1.ascx
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Index</title>
        <style type="text/css">
            #result table thead tr
            {
                background-color:#cccccc;
            }
        </style>
        <script src="../../Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
        <script type="text/javascript">
            //发送异步请求,将结果输出到<div id="result"></div>中
            //最后一个参数可以是"html"也可以是"text"
            function search(query, page)
            {
                $.post("/MYMovie/Search", "query=" + query + "&page=" + page, function(data)
                {
                    $("#result").html(data);
                    $("#result table tbody tr:odd").css("background", "#F5DEB3");
                }, "text"
                );
                //屏蔽超级链接跳转
                return false;
            }
            
            $(function()
            {
                //为搜索按钮绑定事件
                $("#search").click(function()
                {
                    search($("#query").val());
                })
                //为新生成的分页连接绑定click事件
                $("a").live("click", function()
                {
                    search($("#query").val(), $(this).attr("title"));
                });
            })
        </script>
    </head>
    <body>
        <div>
            <h2>搜索电影</h2>
            <%= Html.TextBox("query") %>
            <input type="button" id="search" value="提交" />
            <div id="result"></div>
        </div>
    </body>
    </html>
    Index.aspx
  • 相关阅读:
    几种asp.net页面缓存的做法
    [转载]如果你也想做一个Pinterest网站
    Oracle支持的字符函数和它们的Microsoft SQL Server等价函数
    使用OLEDB读取不同版本Excel数据的连接字符串设置
    SQLServer和Oracle的常用函数对比
    [转载] 简易Pinterest/瀑布流布局
    C# WinForm 实现控件可拖拽
    【转载】Highcharts使用指南
    RBAC开发技术
    一个比较好的winform内嵌excel插件
  • 原文地址:https://www.cnblogs.com/a-dou/p/5802520.html
Copyright © 2011-2022 走看看