在asp.net mvc 使用ajax請求獲取數據的時候,咱們通常是返回json或者xml,而後解析這些數據進行渲染,這樣會比較麻煩,能夠請求一個 分部action,返回一個分部視圖 直接能夠渲染,不須要解析這一步。javascript
下面是示例:html
控制器類:java
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:jquery
public class User { public int Id { set; get; } public string Name { set; get; } }
Index.cshtml:ajax
@{ 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:json
@model System.Collections.Generic.List<Asp.NetMVC3Demo.Controllers.User> @foreach (var item in Model) { <div>@item.Id</div> <div>@item.Name</div> <br/> }
注意:若是的你請求返回的數據量很是龐大,加載速度會變慢,因此此方法在加載大數據時不建議使用。mvc