我正在構建自定義分頁機制,並且有一個用於更改頁面大小的下拉列表。頁面大小在我的viewmodel中表示。顯然,我可以更改該值並再次運行搜索以獲得適當的結果。如何獲取HTML DropDownListFor以回發?
但是有沒有辦法讓DropDownListFor回發選定的值更改?
我正在構建自定義分頁機制,並且有一個用於更改頁面大小的下拉列表。頁面大小在我的viewmodel中表示。顯然,我可以更改該值並再次運行搜索以獲得適當的結果。如何獲取HTML DropDownListFor以回發?
但是有沒有辦法讓DropDownListFor回發選定的值更改?
其實我寫了一個小的JavaScript來啓動此行爲:
$(document).ready(function() {
$('form').find('select.auto-post').change(function() {
$(this).parents('form').submit();
});
});
有趣的巧合,實際上,我working on the same thing現在。但是,我建議您不要使用POST HTTP方法來處理任何類型的分頁參數。改用GET。這使得您的用戶可以更輕鬆地進行導航,並且使搜索引擎更輕鬆地索引您的內容的所有頁面。
UPDATE:
對於上述jQuery的工作,你會令你的下拉列表如下:
Html.DropDownListFor(expression, items, new { @class = "auto-post" })
多年以後,我搜索了自己的問題,並且對我的新手傾向印象深刻。我最終選擇的解決方案是通過GET觸發一個呼叫來切換新數據。基本上你只是把所有的東西都扔在查詢字符串上。也許可以通過巧妙使用ViewModel來完成 – whoblitz 2012-05-09 02:41:12
您可以使用HtmlATtributes傳遞「onchange();」嘗試這個。
<%: Html.DropDownListFor(model => model.ProductName, listobj,
new { onchange = 'submit()'; }) %>
希望這會有所幫助。
+1中爲幫助器集成的解決方案做一個HttpPost。正是我在找的東西。在MVC中,語法在雙引號和無分號的情況下效果更好:`new {onchange =「submit()」}` – 2012-08-22 21:45:29
asp.net的MVC是爲了擺脫廢除`Page.IsPostBack`! 。看看簡單地在asp.net mvc – hunter 2011-01-20 15:44:11