3

我已经按照 MSDN 上的教程进行了操作,它们(据我所见)似乎都@Href()用于 URL。例如

<a href="@Href("~/")">Some link</a>但我记得几个月前在这里读到使用 Server.MapPath() 更安全,例如

<a href="@Server.MapPath("~/")">Some link</a>因为它将其转换为完整路径,这意味着您无法编辑底层代码来更改表单提交到的位置(或类似的东西)。这是真的?

我应该使用Href()orServer.MapPath()吗?哪个更好,为什么?

4

1 回答 1

5

更安全?我看不出有什么原因——但我不会在 Razor 中使用它们。原因如下:

据我记得,该Href功能是从 ASP.NET 1.0 开始的。在执行 WebForms (!) 代码时,您只需粘贴 ~-URL 即可<a href="~/" runat="server">Some link</a>

但是,如果您正在使用 ASP.NET MVC(我假设您正在这样做,因为您使用的是 Razor),您应该使用Url.Content()适合Url.Action()名称的方式。

于 2012-09-02T14:30:39.847 回答