c# - Asp.Net URL 的绝对路径

标签 c# asp.net absolute-path

为了让 Web 应用程序更简单地与不同服务器上的另一个应用程序共享文件,我在母版页中使用了基本 href 标签。正如许多人发现的那样,这会破坏网络表单路径。我有一个有效的 Form Adapter 类,但不确定如何获取 url 的绝对路径。目前,我的程序被硬编码为使用类似于:

HttpContext Context = HttpContext.Current;
value = "http://localhost" + Context.Request.RawUrl;

值得注意的是,我目前正在我的本地 IIS 服务器上进行测试,因此我尝试使用的很多东西都有一种奇怪的趋势,以便绝对路径不包含域名(我的本地 IIS外部不可见)。这意味着它不是绝对路径,因此基本 href 会破坏它。

是否有一种好的方法来处理这个问题,使其无需硬编码即可在本地工作,但在上传到服务器时也能正常工作?我宁愿避免任何涉及在服务器端副本上做不同事情的事情。

是的,我知道我可以在本地和服务器上使用单独的 web.config 文件来获取此信息,但这很丑陋并且违反了 DRY。

最佳答案

我以前用过这个:

// Gets the base url in the following format: 
// "http(s)://domain(:port)/AppPath"
HttpContext.Current.Request.Url.Scheme 
    + "://"
    + HttpContext.Current.Request.Url.Authority 
    + HttpContext.Current.Request.ApplicationPath;

关于c# - Asp.Net URL 的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567590/

相关文章:

c# - 如何使用不同的时区将 UTC 日期和时间转换为本地时间 Nodatime

c# - 在嵌套 ListView 中访问父数据项

c# - 注册外部登录 Web API

node.js - 如果__dirname为您提供文件夹,那么您在什么目录中获得项目的根目录?

c# - 代码隐藏和单独的 C# 类之间的区别

c# - 实现 IEqualityComparer

javascript - 如何获取当前正在执行的javascript代码的文件路径

javascript - JS : extracting href and src attributes URLs from DOM as absolute

c# - 使用 MYSQL 数据库在 .NET 中设置和部署

java - 在 ASP.NET Web API 中创建输入参数并使用 java web 服务功能