使用jquery加载部分视图02-使用$.ajax()

本篇体验使用$.ajax()加载部分视图。与加载部分视图相关的包括:

RenderPartial和RenderAction区别  
使用jquery加载部分视图01-使用$.get()      

□ HomeController

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
 
        public ActionResult GetTeams()
        {
            List<Team> teams = new List<Team>
            {
                new Team(){ID = 1,Name = "广州恒大",Rank = 1},
                new Team(){ID = 2, Name = "山东鲁能", Rank = 2},
                new Team(){ID=3, Name = "北京国安", Rank = 3}
            };
            return PartialView("_ShowTeams", teams);
        }
    }

□ View Model

    public class Team
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Rank { get; set; }
    }

□ 部分视图_ShowTeams.cshtml

@model IEnumerable<_02.Models.Team>
 
<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Rank)
        </th>
    </tr>
 
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Rank)
        </td>
    </tr>
}
</table>
 

□ 主视图Index.cshtml

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 
<h2>Index</h2>
<div id="tm"></div>
 
@section scripts
{
    <script type="text/javascript">
        $(function() {
            $.ajax({
                url: '@Url.Action("GetTeams","Home")',
                contentType: 'application/html;charset=utf-8',
                type: 'GET',
                dataType: 'html',
                success: function(result) {
                    $('#tm').html(result);
                },
                error: function(xhr, status) {
                    alert(status);
                }
            });
        });
    </script>
}
 

效果:       

1

posted @ 2014-03-09 22:47  Darren Ji  阅读(703)  评论(0编辑  收藏  举报

我的公众号:新语新世界,欢迎关注。