在asp.net mvc 使用ajax請求獲取數據的時候,我們一般是返回json或者xml,然后解析這些數據進行渲染,這樣會比較麻煩,可以請求一個 分部action,返回一個分部視圖 直接可以渲染,不需要解析這一步。
下面是示例:
控制器類:
public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } [HttpPost] public PartialViewResult TestAajaLoginViewResult() { List<User> list=new List<User>(); for (int i = 0; i < 10; i++) { list.Add(new User { Id = i,Name = "名稱_"+i}); } return PartialView(list); } }
User類model:
public class User { public int Id { set; get; } public string Name { set; get; } }
Index.cshtml:
@{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $('#btnOK').click(function () { $.ajax({ type: "POST", url: '/Home/TestAajaLoginViewResult', data: { }, datatype: "html", success: function (data) { $('#content').append(data); }, error: function () { alert("處理失敗!"); } }); }); }); </script> <input id="btnOK" value="點擊加載部分頁數據" /> <div id="content"> </div>
TestAajaLoginViewResult.cshtml:
@model System.Collections.Generic.List<Asp.NetMVC3Demo.Controllers.User> @foreach (var item in Model) { <div>@item.Id</div> <div>@item.Name</div> <br/> }
注意:如果的你請求返回的數據量非常龐大,加載速度會變慢,所以此方法在加載大數據時不建議使用。
