2012-04-20 45 views
0
時刪除URL參數

操作方法看起來像如何使用T4MVC

public virtual ActionResult Show(int productId, bool isValid, bool getByStoreId = false) 

當我把這個動作我得到的URL喜歡

.../Product/Show/221?isValid=True&getByStoreId=True 

但我想只顯示

.../Product/Show/221 

T4MVC有這個捷徑嗎?

routes.MapRoute(
       "ProductsShow_Default", 
       "Product/{action}/{articleId}", 
       MVC.Product.Show() 
      ); 

回答

1

默認情況下,不包含在任何路由你把RouteValueDictionary中的鏈接任何參數,默認情況下將添加到查詢字符串。你唯一的方法不是將它們放在查詢字符串中,而是爲它們映射路由,但它們仍將顯示在URL中。

+0

因此,如果我理解正確的,如果我需要需要4個參數的操作,但我想只在URL中顯示2最好的解決方案是找到一種方法來使用該操作與2參數,而不是4,因爲來自操作方法的所有參數必須網址的一部分? – 1110 2012-04-20 21:52:55

+0

是的,*雖然*如果您發現自己將越來越多的參數發送給控制器,您應該考慮一下設計。問問你自己,有沒有其他的方式可以得到這些數據,而不需要把所有的信息都發送給一個行動?如果這是發佈請求,那麼您應該真的將模型發回到包含模型中所需的所有字段的動作中:) – mattytommo 2012-04-20 21:55:57