我有網址:http://url.com/segment1?id=885&variable_need_to_ignore=value
ASP net MVC:如何忽略一個獲取路由變量?
我需要排除的網址最後一個變量(&variable_need_to_ignore=value
),並處理它不變量(最理想的情況重定向,在同一頁上)http://url.com/segment1?id=885
(與航線配置理想情況下)。
我有網址:http://url.com/segment1?id=885&variable_need_to_ignore=value
ASP net MVC:如何忽略一個獲取路由變量?
我需要排除的網址最後一個變量(&variable_need_to_ignore=value
),並處理它不變量(最理想的情況重定向,在同一頁上)http://url.com/segment1?id=885
(與航線配置理想情況下)。
您可能需要在RouteConfig.cs添加一個新的路線,這應該是最好的默認路由之前,有點類似於
routes.MapRoute(
name: "MyCustomRoute",
url: "{controller}/{action}/{id}/{variable_to_ignore}",
defaults: new { variable_to_ignore = UrlParameter.Optional }
);
你的操作方法,應該有兩個參數 - id和variable_to_ignore。
您可以將查詢字符串參數中的那些參數更改爲URL路徑參數。 Check out this。恕我直言,這將使您的網址更清潔,並遵循更多的RESTful範例。
如果沒有,那麼只需創建一條到「http://url.com/segment1」的路由,並在代碼中忽略查詢字符串參數「variable_need_to_ignore」即可。
它仍然留下了問題:如果您不需要它,爲什麼您需要忽略它以及爲什麼它首先在URL中?
EDITED
如果傳入的參數超出你的控制,你需要忽略它們,那麼就忽略它們在你的代碼。由於資源存在於您提供的URL上,恕我直言,在您的情況下,404並不是真正有效的迴應。該查詢字符串應該真的用於某種過濾器上的結果,你會返回,它不應該是所有必需的參數在首位。
感謝您的回覆。我需要忽略它,因爲有社交網絡腳本爲引用的URL添加了一些get參數。如果至少有一個未知的get參數,則發送404狀態碼。 – thedriveee
感謝您的回覆。將這個參數添加到我的所有操作中會有問題。 – thedriveee
如果您的動作中沒有該參數(即variable_to_ignore),那麼爲什麼需要忽略它!可能,我無法理解你的問題。你能否更新你的問題,可能是你需要向人們展示你的行爲簽名。 – Nirman
有一些社交網絡腳本爲引用的URL添加一些獲取參數。如果至少有一個未知的get參數,則發送404狀態碼。 – thedriveee