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

    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()

     
    0
    0
     
     
     
    « 上一篇: jqGrid 最常用的属性和事件,供平时参考(转)
    » 下一篇: jqGrid 学习笔记--数据异步加载方法(转)

    posted on 2015-11-29 02:56  回到印第安  阅读(360)  评论(0编辑  收藏  举报

  • 相关阅读:
    logback配置和使用
    安装多个jdk导致eclipse打不开问题
    Spring事务管理
    使用JavaConfig配置SpringMVC
    Spring pom.xml配置
    Maven私服搭建(Nexus Repository Manager 3)
    Maven多环境配置
    Maven多模块构建实例
    Maven依赖机制
    Maven安装与配置
  • 原文地址:https://www.cnblogs.com/LifeDecidesHappiness/p/15555030.html
Copyright © 2011-2022 走看看