Server.MapPath VS. @href( “〜/ SomeFile.cshtml”)

时间:2012-09-02 14:19:00

标签: c# asp.net .net asp.net-mvc razor

我已经按照MSDN上的教程进行了操作,他们(从我所看到的)似乎都使用了@Href()来获取URL。 E.g。

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

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

我应该使用Href()还是Server.MapPath()?哪一个更好,为什么?

1 个答案:

答案 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}}名字明智。