c# - Server.MapPath VS。 @Href ("~/SomeFile.cshtml")

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

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

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

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

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

最佳答案

更安全?我不明白为什么 - 但我不会在 Razor 中使用它们。原因如下:

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

但是,如果您正在做 ASP.NET MVC(我假设您正在做,因为您正在使用 Razor),您应该使用 Url.Content()适合 Url.Action()名字明智。

关于c# - Server.MapPath VS。 @Href ("~/SomeFile.cshtml"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236667/

相关文章:

c# - ASP.net 用户控件和业务实体

javascript - 表单计算字段不在报告页面 jquery 和 asp 上发布

c# - 使用 C# 将字符串列表写入文本文件,添加为邮件的附件

c# - 如何使用 XMLDocument 类从 C# 中的 XML 文件获取数据?

c# - 访问扩展方法的变量 (C#)

c# - 如何确定退出代码来自哪里?

c# - 使用 C# ASP.NET 将 Word 文档内容传输到服务器端的 Web 环境

c# - 使用 C# .net 应用程序访问事件目录中的不同域在本地计算机上有效,但在 IIS 服务器中托管时无效

.net - 寻找主机名/机器名验证的正则表达式/代码

c# - Entity Framework 中记录插入的空引用异常