我有下面的格式queryparam超鏈接:超鏈接'?'逃離
<a href="<%= Url.Content("~/Search/Results/" +
ViewData["SearchID"] + "?listingID=" +
ViewData.Model.ListingID) %>">
See more
</a>
顯示了在頁面的源精細但點擊時我結束了:
http://localhost/{Site}/Search/Results/30%3FlistingID=2
我試着使用ActionLink的幫手:
<%= Html.ActionLink("See more", "Results", "Search",
new {
id = ViewData["SearchID"],
listingID = ViewData.Model.ListingID
}, null) %>
我甚至已經嘗試註冊一個路線具體到這一行動:
routes.MapRoute(
"SearchResults", // Route name
"Search/Results/{id}/{listingID}", // URL with parameters
new { controller = "Search",
action = "Results",
id = UrlParameter.Optional,
listingID = UrlParameter.Optional } // Parameter defaults
);
我真的很困惑,爲什麼URL顯示在生成的頁面源罰款,但沒有在實際的請求URL一旦點擊。任何輸入?
編輯 的網址正確顯示了在生成的頁面的源代碼:
<a href="/[SITE]/Search/Results/30?listingID=2">See more</a>
手動輸入上述網址到地址欄工作正常說來也奇怪。真的很困惑。
第二個編輯
的真正原因是網址就是一個問題是,我得到一個錯誤:
A potentially dangerous Request.Path value was detected from the client (?).
最後編輯
我發現的原因問題。請求來自https到http,並且目標Controller上有一個屬性,將url重寫爲http。 /FacePalm
當你使用'Html.ActionLink'時會發生什麼?我在很多地方都是這樣使用它,我從來沒有遇到過問題。 –
什麼是'Uri' ..? –
@Ronald:當我使用ActionLink的我在以下I得到相同的結果瓦特/鏈路得到相同的超鏈接路徑然而的「http://本地主機/ [SITE] /搜索/結果/ 30%3FlistingID = 2」,在表示地址欄。 –