2016-01-06 42 views
0

我有網址:http://url.com/segment1?id=885&variable_need_to_ignore=valueASP net MVC:如何忽略一個獲取路由變量?

我需要排除的網址最後一個變量(&variable_need_to_ignore=value),並處理它不變量(最理想的情況重定向,在同一頁上)http://url.com/segment1?id=885(與航線配置理想情況下)。

回答

1

您可能需要在RouteConfig.cs添加一個新的路線,這應該是最好的默認路由之前,有點類似於

routes.MapRoute(
       name: "MyCustomRoute", 
       url: "{controller}/{action}/{id}/{variable_to_ignore}", 
       defaults: new { variable_to_ignore = UrlParameter.Optional } 
      ); 

你的操作方法,應該有兩個參數 - id和variable_to_ignore。

+0

感謝您的回覆。將這個參數添加到我的所有操作中會有問題。 – thedriveee

+0

如果您的動作中沒有該參數(即variable_to_ignore),那麼爲什麼需要忽略它!可能,我無法理解你的問題。你能否更新你的問題,可能是你需要向人們展示你的行爲簽名。 – Nirman

+0

有一些社交網絡腳本爲引用的URL添加一些獲取參數。如果至少有一個未知的get參數,則發送404狀態碼。 – thedriveee

2

您可以將查詢字符串參數中的那些參數更改爲URL路徑參數。 Check out this。恕我直言,這將使您的網址更清潔,並遵循更多的RESTful範例。

如果沒有,那麼只需創建一條到「http://url.com/segment1」的路由,並在代碼中忽略查詢字符串參數「variable_need_to_ignore」即可。

它仍然留下了問題:如果您不需要它,爲什麼您需要忽略它以及爲什麼它首先在URL中?

EDITED

如果傳入的參數超出你的控制,你需要忽略它們,那麼就忽略它們在你的代碼。由於資源存在於您提供的URL上,恕我直言,在您的情況下,404並不是真正有效的迴應。該查詢字符串應該真的用於某種過濾器上的結果,你會返回,它不應該是所有必需的參數在首位。

+0

感謝您的回覆。我需要忽略它,因爲有社交網絡腳本爲引用的URL添加了一些get參數。如果至少有一個未知的get參數,則發送404狀態碼。 – thedriveee