如何在自定义ASP.NET MVC路由中使用String.Replace方法?

时间:2014-06-01 23:00:39

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

我对ASP.Net MVC和自定义路由仍然有点新,除了发布我正在使用的URL链接和路由并征求建议之外,我不太确定如何提出这个问题。

问题是:

  

从中检测到潜在危险的Request.Path值   客户(&)。

这是由“&”引起的我链接中的符号:

http://localhost/search/cars-&-motorcycles

而且,这是我的路线:

routes.MapRoute(
    "CategorySearch",
    "category/{searchcriteria}",
    new { controller = "Listing", action = "Index", isCategory = true, searchcriteria = UrlParameter.Optional }
);

我想做的是删除“&”在它通过之前从可选的参数,希望这将纠正我正在经历的“潜在危险”问题。我试过用

UrlParameter.Optional.ToString().Replace("&", "")

甚至可以删除“&”从Route.MapRoute方法里面的某个地方开始的符号?

1 个答案:

答案 0 :(得分:1)

您可以使用HtmlHelper.Encode对其进行编码:

string encodedUrl = HtmlHelper.Encode("http://localhost/search/cars-&-motorcyles");