2009-06-08 55 views
1

我有一個包含聯繫人的網格。當用戶轉到/ contacts/URL時,它會自動顯示聯繫人。在一個單獨的框中,人們可以按照不同的標準過濾這些框。我只想刷新網格,而不是整個頁面,只要應用不同的標準。C#MVC:搜索網格作爲部分視圖來啓用AJAX返回?

爲了實現這個目標,我會將聯繫人網格本身放在一個局部視圖中,並且稍後通過AJAX返回部分視圖?

請給我一個正確的方向提示。謝謝:)

回答

2

最直接的方法可能是使用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); 
+0

所以我應該在部分視圖中的網格? – Alex 2009-06-08 18:17:00

+0

是的,網格進入局部視圖。 – 2009-06-08 18:24:31