zoukankan      html  css  js  c++  java
  • MVC Ajax Helper或jQuery异步方式加载部分视图

    Model:

    namespace MvcApplication1.Models
    {
        public class Team
        {
            public string Preletter { get; set; }
            public string Name { get; set; }
        }
    }

    通过jQuery异步加载部分视图

    Home/Index.cshtml视图中:

    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    
    <h2>Index</h2>
    
    <div>
        <a href="#" id="a">通过jQuery异步</a> <br/>
    </div>
    <div id="result">
        
    </div>
    @section scripts
    {
        <script type="text/javascript">
            $(function() {
                $('#a').click(function() {
                    $.ajax({
                        url: '@Url.Action("Index","Home")',
                        data: { pre: 'B' },
                        type: 'POST',
                        success: function(data) {
                            $('#result').empty().append(data);
                        }
                    });
                    return false;
                });
            });
        </script>
    }

    HomeController控制器中:

    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Mvc;
    using MvcApplication1.Models;
    
    namespace MvcApplication1.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }
    
            [HttpPost]
            public ActionResult Index(string pre)
            {
                var result = GetAllTeams().Where(t => t.Preletter == pre).ToList();
                ViewBag.msg = "通过jQuery异步方式到达这里~~";
                return PartialView("TeamY", result);
            }
    
            private List<Team> GetAllTeams()
            {
                return new List<Team>()
                {
                    new Team(){Name = "巴西队", Preletter = "B"},
                    new Team(){Name = "克罗地亚队", Preletter = "K"},
                    new Team(){Name = "巴拉圭", Preletter = "B"},
                    new Team(){Name = "韩国", Preletter = "K"}
                };
            }
        }
    }

    部分视图TeamY.cshtml:

    @model IEnumerable<MvcApplication1.Models.Team>  
    
    @{
        var result = string.Empty;
        foreach (var item in Model)
        {
            result += item.Name + ",";
        }
    }
    
    @ViewBag.msg.ToString()
    <br/>
    @result.Substring(0,result.Length - 1)

    通过MVC Ajax Helper异步加载部分视图

    Home/Index.cshtml视图中需要引用jquery.unobtrusive-ajax.js文件,从控制器返回的强类型部分视图内容呈现到UpdateTargetId指定的div中。

    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    
    <h2>Index</h2>
    
    <div>
        @Ajax.ActionLink("通过MVC Ajax Helper","Load","Home", new {pre = "K"}, new AjaxOptions(){UpdateTargetId = "result1"})
    </div>
    <div id="result1">
    </div>

    HomeController控制器中:

    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Mvc;
    using MvcApplication1.Models;
    
    namespace MvcApplication1.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }
    
            public ActionResult Load(string pre)
            {
                var result = GetAllTeams().Where(t => t.Preletter == pre).ToList();
                ViewBag.msg = "通过MVC Ajax Helper到达这里~~";
                return PartialView("TeamY", result);
            }
    
            private List<Team> GetAllTeams()
            {
                return new List<Team>()
                {
                    new Team(){Name = "巴西队", Preletter = "B"},
                    new Team(){Name = "克罗地亚队", Preletter = "K"},
                    new Team(){Name = "巴拉圭", Preletter = "B"},
                    new Team(){Name = "韩国", Preletter = "K"}
                };
            }
        }
    }

    部分视图和上一种方式一样。

    页面刷新的方式加载部分视图方法包括:
    Html.RenderPartial()
    Html.RenderAction()

  • 相关阅读:
    rsync+inotify实现实时同步案例
    Redis安装笔记
    监控软件munin安装设置
    Let’s Encrypt Wildcard 免费泛域名SSL证书获取安装
    [转载]真正的inotify+rsync实时同步 彻底告别同步慢
    PAT L1-009 N个数求和(运用GCD进行通分)
    文件的上传下载
    关系型数据库 VS 非关系型数据库
    python的局部变量,全局变量,类变量,实例变量
    Python 常用模块大全(整理)
  • 原文地址:https://www.cnblogs.com/hebo/p/5003974.html
Copyright © 2011-2022 走看看