在我的剃须刀页面上。
<p>
<span>Website: </span>
<span>
<a href="@(Url.Encode(Model.PrimaryInfo.WebsiteUrl))" target="_blank">@Model.PrimaryInfo.WebsiteUrl</a>
</span>
</p>
当我检查看到的元素时。 该页面显示为
当我检查元素时得到
<a href="https%3a%2f%2fwww.mywebsite.org%2f" target="_blank">https://www.mywebsite.org/</a>
当我单击链接时,我会得到
[HttpException(0x80004005):潜在危险的Request.Path 从客户端(:)检测到值。]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig()+9939972
System.Web.PipelineStepManager.ValidateHelper(HttpContext上下文)+53
答案 0 :(得分:1)
尝试使用
public static class LinkHelper{
public static string ExternalLink(this HtmlHelper helper, string url, string text)
{
return String.Format("<a href='http://{0}' target="_blank">{1}</a>", url,text);
}}
在视野中
@Html.ExternalLink("www.google.com", "Google")
答案 1 :(得分:1)
这是您的清单:
未使用非Unicode数据类型:验证您将URL作为NVarChar类型存储在数据库中,并且不使用VarChar
无需编码:删除编码。
确认您没有违反.Net的请求验证方案。 请参考hanslman的文章: https://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx