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

  • 相关阅读:
    北京爱丽丝幻橙科技有限公司
    红杉资本中国基金:创业者背后的创业者
    关于我们_ | 腕表时代watchtimes.com.cn
    当你想放弃的时候,问一下自己你尽力了吗
    李圣杰_百度百科
    范思哲
    DOM Traversal Example | Documentation | Qt Project
    关于QT中evaluateJavaScript()函数返回值的处理问题
    JS获取整个HTML网页代码
    javascript
  • 原文地址:https://www.cnblogs.com/hebo/p/5003974.html
Copyright © 2020-2023  润新知