[英]Passing Parameter to URL ASP.NET MVC
我只是想知道將參數傳遞到包含您不希望傳遞給URL的字符的URL的最佳實踐是什么。 例如,我將字符串/LM/W3SVC/7/ROOT
傳遞到URL中,但我希望不帶反斜杠地傳遞它,因此就像LMW3SVC7ROOT
我目前的方式是使用.Replace()
。 這是我當前使用的完整代碼行<a href="@Url.Action("Errors", new { id=item.Application.Replace("/", "").Replace(".", "")})"> @Html.DisplayFor(modelItem => item.Application) </a>
可以正常工作,但會<a href="@Url.Action("Errors", new { id=item.Application.Replace("/", "").Replace(".", "")})"> @Html.DisplayFor(modelItem => item.Application) </a>
發出警告,所以我只是想知道這是否是實現它的正確方法。
'Possible unintended reference comparison; to get a value comparison, cast the right hand side to type 'string'
提前致謝。
您遇到的問題來自var queryString = RouteData.Values["id"];
。 如果您在Visual Studio中查看並將鼠標懸停在var
,它將告訴您該特定var
的類型,在這種情況下為Object
。
嘗試:
var queryString = RouteData.Values["id"].ToString();
在這種情況下,您發現自己不得不替換字符串中的某些字符,這可能意味着服務器端,您可能不得不做一些額外的邏輯來應對,而不必在接收到的字符串上包含這些字符。 在您的視圖中,只需將id
包裝在Url.Encode
:
id = Url.Encode(item.Application)
您將收到帶有解碼字符串的服務器端,即/LM/W3SVC/7/ROOT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.