感谢您阅读我的博客,如果您现在工作、学习累了或者疲惫了,不妨聆听一下音乐,它能够减轻你的疲劳,还能够带给您一种舒适愉悦的心情。如果您认为这篇文章还不错或者有所收获,您可以在页面 右侧和底部 扫描二维码 打赏我,您的鼓励是我继续写作、分享的最大动力!

【转载】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编辑  收藏  举报

posted @ 2021-11-15 10:45  Love In Winter  阅读(18)  评论(0编辑  收藏  举报
作者: LifeDecidesHappiness
出处: http://www.cnblogs.com/LifeDecidesHappiness/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址 2468881301@qq.com  联系我,非常感谢。
踏实做一个为人民服务的搬运工!
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能,您的支持和鼓励是我继续写作、分享的最大动力!

点击关注不迷路,让我带你上高速!