将参数传递给URL ASP.NET MVC

时间:2015-08-24 08:43:58

标签: c# asp.net 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>,它可以正常工作,但不时会抛出警告,所以我只是想知道这是否是实现它的正确方法。

'Possible unintended reference comparison; to get a value comparison, cast the right hand side to type 'string'

提前致谢。

1 个答案:

答案 0 :(得分:0)

您遇到的问题来自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