我已经按照MSDN上的教程进行了操作,他们(从我所看到的)似乎都使用了@Href()
来获取URL。 E.g。
<a href="@Href("~/")">Some link</a>
但我记得几个月前在这里阅读使用Server.MapPath()更安全,例如
<a href="@Server.MapPath("~/")">Some link</a>
因为它将其转换为完整路径,这意味着您无法编辑底层代码来更改表单提交的位置(或类似内容)。这是真的吗?
我应该使用Href()
还是Server.MapPath()
?哪一个更好,为什么?
答案 0 :(得分:5)
更安全吗?我没有看到原因 - 但我不会在Razor中使用。原因如下:
据我记忆,Href
函数来自ASP.NET 1.0次。 在执行WebForms (!)代码时,您只需粘贴〜-URL <a href="~/" runat="server">Some link</a>
。
但是,如果你正在做ASP.NET MVC (我假设你在使用Razor时正在做),你应该使用符合{{Url.Content()
的{{1}} 1}}名字明智。