3

我有一个显示供应商链接的视图,其中包含指向每个供应商详细信息页面的链接

@foreach (var vendor in Model.Vendors)
{
    <li>
        <a href="/Vendors/@(vendor.Name)">@vendor.Name</a>
    </li>
}

一个特定的供应商被命名为“ABC 销售和服务”,因此到他们的详细信息页面的链接是/Vendors/ABC Sales & Services。当我导航到该网址时,我收到此错误:

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

有没有办法解决这个问题?

4

4 回答 4

4

将此添加到web.config's httpRuntime

<httpRuntime requestPathInvalidChars="&lt;,&gt;,*,%,:,\,?" />

默认情况下,该列表包括&amp;,您只是将其删除

于 2013-01-26T01:13:38.977 回答
1

您应该真正使用供应商的 ID(希望在您的数据库中有一个主键 - 数字/guid),而不是名称。

于 2013-01-26T01:13:39.343 回答
1

您应该对供应商名称进行 UrlEncode:

<a href="/Vendors/@Url.Encode(vendor.Name)">@vendor.Name</a>

顺便说一句,这是在您使用Url.ActionHtml.Action构造锚标记的方法时代表您完成的

于 2013-01-26T01:18:03.847 回答
0

您可以使用

<a href="@Url.Action("/Vendors/" + @vendor.Name)">@vendor.Name</a>
于 2013-01-26T01:31:06.717 回答