0
可以說我需要創建一個搜索頁面。該網頁上有:mvc視圖中的複雜網址 - 誰負責構建它們?
- 與許多搜索參數(參數1,參數2,...,paramN)
- 的結果項
- 尋呼機
- 佈局開關鏈接列表複雜的搜索過濾器(列表或表格視圖)
我將視圖模型從我的動作傳遞給視圖,其中包含有關當前搜索參數值(來自url)和一些「猜測」參數(它們不是直接來自url)例如,如果用戶這樣做es不指定區域,我們可以從他的ip中猜出它)。現在
,在尋呼機每一個環節我不得不寫這樣
<a href="@Url.Action(null, new { page = n, param1, param2, ..., paramN, region })">...
對於佈局切換鏈接代碼,我得寫類似,但不同的代碼:
<a href="@Url.Action(null, new { page = currentPage, mode = DisplayModes.List, param1, param2, ..., paramN, region })">list</a>
<a href="@Url.Action(null, new { page = currentPage, mode = DisplayModes.Table, param1, param2, ..., paramN, region })">table</a>
我不喜歡的是,有多少代碼泄漏到視圖中。這很難維護,很難測試。
所以我徘徊正在構建這樣複雜的頁面的url是視圖或行動的責任?
你的建議的問題是,我需要不同的參數尋呼機和顯示模式的網址。 – 2013-03-08 05:10:43
這是怎麼回事?創建2個RouteValueDictionary對象,每個Url一個。 – Nenad 2013-03-08 07:58:35
然後,最好在內部完全構建url內部的路由 - 這些自定義路由值在他們創建的非常特定的url之外沒有用處。 – 2013-03-08 08:17:40