我有一个显示供应商链接的视图,其中包含指向每个供应商详细信息页面的链接
@foreach (var vendor in Model.Vendors)
{
<li>
<a href="/Vendors/@(vendor.Name)">@vendor.Name</a>
</li>
}
一个特定的供应商名为“ABC销售与服务”,因此指向其详细信息页面的链接为/Vendors/ABC Sales & Services
。当我导航到该网址时,我收到此错误:
从客户端(&amp;)检测到潜在危险的Request.Path值。
有没有办法解决这个问题?
答案 0 :(得分:3)
将其添加到web.config
的{{1}}:
httpRuntime
默认情况下,该列表包含<httpRuntime requestPathInvalidChars="<,>,*,%,:,\,?" />
,您只需删除它
答案 1 :(得分:1)
你应该真正利用供应商的ID(希望你的数据库上有一个主键 - 数字/ guid),而不是名字。
答案 2 :(得分:1)
您应该对供应商名称进行UrlEncode:
<a href="/Vendors/@Url.Encode(vendor.Name)">@vendor.Name</a>
顺便说一下,当您使用Url.Action
或Html.Action
方法构建锚标记时,代表您完成此操作
答案 3 :(得分:0)
您可以使用
<a href="@Url.Action("/Vendors/" + @vendor.Name)">@vendor.Name</a>