我見過this answer描述的無鑰匙(不無價值)的參數,如http://some.url?param1¶m2
ASP.NET支持,並確認他們能夠觀看到Request.QueryString
像:如何在ASP.NET創建無鑰匙URL參數
var values = this.Request.QueryString.GetValues(null);
values.Any(o => o == "param1");
這是好的,但現在我想要生成這樣的網址。我的第一直覺是使用的Url.Action
的RouteValueDictionary: routeValues
參數,使用null作爲一個關鍵:
@{
var dict = new RouteValueDictionary();
dict.Add(null, "param1");
dict.Add(null, "param2");
}
<a href="@Url.Action("ActionName", dict)">Very link, amaze</a>
但很顯然的C,因爲原因#forbids nulls as dictionary keys。
我也嘗試了空字符串作爲鍵,但它導致一個查詢字符串,如:?=param1,=param2
其中包含兩個我想要它的等號。
當然,我可以字符串操縱我的網址heck,並將¶m1
部分添加到查詢字符串,但我希望有一個簡潔的解決方案。
爲什麼不使用路由? https://msdn.microsoft.com/en-us/library/cc668201.aspx – Alex
@ 2316116您真的可以詳細說明如何「使用路由」來創建我描述的URL嗎? – SoonDead
路由通常使用/作爲鍵和值之間的分隔符,url看起來像http:// server/url/param1/param2 - 所以如果使用?和&不是必須使用的路由。 – Alex