2010-06-23 95 views
1

我正在研究一個網頁,提供一個帶下拉列表的表單來查看不同年份的數據。該年是所配置的URL路由的一部分。當頁面加載時,URL可能類似於:activitylog/department/year。如何在提交表單時修改ASP.NET MVC中的URL?

當表單在此頁面上提交時,即使用戶選擇了不同的年份來查看,URL也不會更改。一切似乎確實正常工作。在表單上將2010年更改爲2008年時,將從Web服務器顯示2008年的正確信息。

但是,瀏覽器中顯示的URL會繼續顯示2010年。雖然這不是一個真正的問題,但我覺得爲這個特定的動態頁面顯示直接URL是很好的,例如:activitylog/IT/2008 。

什麼是處理這樣的事情的首選方法?我相信我可以使用JQuery來捕獲表單提交,並使用選定的年份生成新的URL。

是否有一種內置於MVC的方法可以處理我忽略的方法?

回答

3

您可以使用jQuery提交之前修改表單操作:

$(function() { 
    $('#idofyourform').submit(function() { 
     var selectedYear = $('#idofyeardropdown').val(); 
     this.action = this.action.replace(/\/[\d]{4}$/, '/' + selectedYear); 
     return true; 
    }); 
}); 
+0

我打了幾個MODS的我的特殊情況,但這是工作很好。謝謝。 – Swoop 2010-06-24 13:12:52

1

Javascript將成爲你的朋友在這裏。

您可能想要創建一個JavaScript方法來更改窗體上的操作屬性,並在窗體上使用onSubmit事件,或讓按鈕直接調用此方法(不要使用type =「button」和不要在您的輸入中輸入type =「submit」)並讓該方法設置操作並提交表單。

相關問題