2009-07-01 85 views

回答

117

所傳遞不屬於路線的一部分的任何值將作爲查詢字符串參數:

return this.RedirectToAction 
    ("myActionName", new { value1 = "queryStringValue1" }); 

將返回:

/controller/myActionName?value1=queryStringValue1 

假設有一個名爲「VALUE1」無路由參數。

+0

同意,但名稱爲「value1」的操作參數可能存在。爲什麼不? – 2009-07-01 04:20:17

+2

我認爲答案意思是「假設沒有名爲'value1'的路由參數」。否則,該值將進入路由參數在所生成的URL中的位置,例如, {controller}/{action}/{value1}會變成/ controller/myActionName/queryStringValue1而不是/ controller/myActionName?value1 = queryStringValue1。 – Levi 2009-07-01 04:30:53

3

也考慮使用T4MVC,它具有擴展方法AddRouteValue()AddRouteValues()(請參見here)。

1

不要犯我犯的同樣的錯誤。我正在處理404錯誤,並希望在查詢字符串中重定向404=filename,即mysite.com?404=nonExistentFile.txt

QueryString鍵不能以數字開頭。從404更改爲FileNotFound解決了我的問題,即mysite.com?FileNotFound=nonExistentFile.txt