我有一個包含聯繫人的網格。當用戶轉到/ contacts/URL時,它會自動顯示聯繫人。在一個單獨的框中,人們可以按照不同的標準過濾這些框。我只想刷新網格,而不是整個頁面,只要應用不同的標準。C#MVC:搜索網格作爲部分視圖來啓用AJAX返回?
爲了實現這個目標,我會將聯繫人網格本身放在一個局部視圖中,並且稍後通過AJAX返回部分視圖?
請給我一個正確的方向提示。謝謝:)
我有一個包含聯繫人的網格。當用戶轉到/ contacts/URL時,它會自動顯示聯繫人。在一個單獨的框中,人們可以按照不同的標準過濾這些框。我只想刷新網格,而不是整個頁面,只要應用不同的標準。C#MVC:搜索網格作爲部分視圖來啓用AJAX返回?
爲了實現這個目標,我會將聯繫人網格本身放在一個局部視圖中,並且稍後通過AJAX返回部分視圖?
請給我一個正確的方向提示。謝謝:)
最直接的方法可能是使用jQuery AJAX API來請求該方法。然後,您可以使用控制器中的Request.IsAjaxRequest()
屬性來查看請求是否是使用AJAX進行的 - 如果是這樣,則您只返回Controller操作中的PartialView
。
的某些代碼示例:
在你看來,你可以有以下標記:
<div id="gridContainer">
<% Html.RenderPartial("ContactsGrid", ViewData.Model); %>
</div>
(假設你的聯繫人都包含在Model
對象,並認爲是強類型...)
然後,當您要更新網格時,您將調用以下JavaScript代碼:
$('#gridContainer').load('/contacts/', { filterParameter: andItsValue });
如果您的路由支持,您也可以在URL中追加過濾器參數。
在你的控制器動作,您在返回前做以下檢查:
if(Request.IsAjaxRequest()) {
return PartialView("ContactsGrid", contacts);
}
return View(contacts);
我一般不喜歡只是張貼鏈接,我喜歡寫代碼了快速的樣本,但是這CodeProject上的文章,我認爲確實這項工作恰到好處:http://www.codeproject.com/KB/aspnet/JQueryPartial.aspx。
Something I put together a while ago...
我認爲這將讓你在正確的方向開始。這是一個使用AJAX和UserControl的簡單搜索人員表單。
所以我應該在部分視圖中的網格? – Alex 2009-06-08 18:17:00
是的,網格進入局部視圖。 – 2009-06-08 18:24:31