【问题标题】:Server.MapPath VS. @Href("~/SomeFile.cshtml")Server.MapPath VS。 @Href("~/SomeFile.cshtml")
【发布时间】:2012-09-02 14:18:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我永远不会使用Server.MapPath() 作为 URL 路径。正如 MSDN 所描述的,功能(甚至Server 类)是在您的服务器上查找物理目录。
  • 有趣。我的另一个想法是,这个人建议的方式不可能更安全。由于可以查看所有 HTML 源代码,因此无论您使用 Href 还是 Server.MapPath 都无关紧要 - 它仍然可以查看(因此可以通过开发工具进行编辑)

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


【解决方案1】:

更安全?我看不出为什么 - 但我不会在 Razor 中使用。原因如下:

据我所知,Href 函数来自 ASP.NET 1.0 时代。 在做 WebForms 时 (!) 代码您只需粘贴 ~-URL <a href="~/" runat="server">Some link</a>

但是,如果您正在使用 ASP.NET MVC(我假设您正在这样做,因为您使用的是 Razor),您应该使用与 Url.Action() 名称相符的 Url.Content() -明智的。

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 2014-04-06
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 2013-02-24
    • 2014-01-11
    • 2013-10-11
    • 2011-04-10
    相关资源
    最近更新 更多