如何使用 javascript 获取 MVC 应用程序的基本 URL

2024-01-03

如何使用 javascript 获取基本 URL?

例如,当我从 Visual Studio 浏览我的网站时,如果我的 URL 是http://localhost:20201/home/index,我想得到http://localhost:20201

如果我在 IIS 上托管站点,并且虚拟目录名称为 MyApp 并且 URL 为http://localhost/MyApp/home/index,我想得到http://localhost/MyApp

我尝试使用location.protocol + location.hostname (and location.host),当我通过 Visual Studio 浏览我的网站时,它们工作正常,但是当我将其托管在 IIS 上时,我得到http://localhost,/MyApp 被截断。


您应该避免在 JavaScript 中进行此类检测,而是从 .NET 代码传递值。您总是会面临遇到 url 问题的风险,例如http://server/MyApp/MyApp/action您无法知道哪个是控制器的名称以及哪个是应用程序的路径。

在 Layout.cshtml 文件(或任何需要的地方)中添加以下代码:

<script type="text/javascript">
    window.applicationBaseUrl = @Html.Raw(HttpUtility.JavaScriptStringEncode(Url.Content("~/"), true));
    alert(window.applicationBaseUrl + "asd.html");

    // if you need to include host and port in the url, use this:
    window.applicationBaseUrl = @Html.Raw(HttpUtility.JavaScriptStringEncode(
        new Uri(
                   new Uri(this.Context.Request.Url.GetLeftPart(UriPartial.Authority)),
                   Url.Content("~/")
               ).ToString(), true));
    alert(window.applicationBaseUrl + "asd.html");
</script>

The new Uri()需要部分,以便始终正确组合 URL(无需手动检查每个部分是否以以下开头或结尾/象征)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 javascript 获取 MVC 应用程序的基本 URL 的相关文章

随机推荐

  • 如何在 Liquid 的 for 循环中创建数组?

    我正在尝试使用 Liquid 语法从对象列表创建一个数组 for operation in menuItems assign words1 operation Title split assign controllerName words1
  • 从 C# 代码加密/解密连接字符串

    有什么方法可以从我的 C 代码中实现连接字符串的加密和解密吗 就像我们一样 aspnet regiis pe 连接字符串 aspnet regiis pd 连接字符串 Thanks static public void ProtectSec
  • 如何显示/隐藏ReactJS组件

    尝试学习 ReactJS 但令我困惑的是组件的渲染 我见过的每个例子都定义了一个 React 组件类 最后有类似的内容 React renderComponent
  • Pandas 系列到 json 并返回

    我在将简单的 Pandas Series 转换为 json 字符串并返回时遇到一些问题 这是我的尝试 import pandas as pd f pd Series data 1 0 2 0 3 0 index 10 20 30 x f t
  • 在reactJS中每X秒发出一次API请求

    进入时货币页面 我试图从数据库获取currencyConversionRates 列表 然后设置一个间隔以每6 秒不断获取新更新的currencyConversionRates 列表 到目前为止 一切正常 但是 我无法将 setInterv
  • 网站项目与 Web 应用程序 - 哪个更好?

    我刚刚开始使用cms N2 它有一个模板基本实现 使用vs2008中的网站项目模板 我注意到编译它比使用我更习惯的 Web 应用程序项目花费的时间要长得多 我的问题是 为什么编译似乎需要更长的时间 使用哪个更好 我应该将其转换为网络应用程序
  • 从 javac 或 JRE 获取没有编译类的 java 类版本

    Java 类版本可以使用以下命令从类二进制文件中获取javap javap verbose Test grep minor major minor version 0 major version 55 是否可以提前知道 JDK 将生成哪个类
  • 您可以在代码中导入“devDependency”吗?

    Mobx DevTool 的自述文件 https github com mobxjs mobx react devtools指导您将其安装为开发依赖项 然后将其导入到您的代码中 这对我来说似乎是一个问题 因为 devDependencies
  • 如何从给定的字符串中获取日期部分?

    我有这样的字符串 Mon 14 May 2012 13 56 38 GMT 现在我只想约会 即14 May 2012 为此我需要做什么 正确的方法是将其解析为Date对象并按照您想要的方式格式化该日期对象 DateFormat inputD
  • 将对象从 Java 传递到 Oracle 过程

    要将数组传递给 oracle 过程 我们使用ArrayDiscriptor and ARRAY 对象 我必须使用什么对象来将对象传递给 存储过程 ArrayDescriptor 和 ARRAY 类 以及 StructDescriptor 和
  • 如何在脚本中的多个文件中使用多个类?

    我需要制作一个独立的 Groovy 脚本 该脚本不需要编译并且无需安装 Groovy 即可运行 它运行良好 但无法识别除主脚本之外的任何其他脚本 我的文件夹结构如下 libs groovy all 2 4 3 jar ivy 2 4 0 j
  • Pyspark:从涉及数组列的 Json 架构创建架构

    我在 json 文件中定义了 df 的架构 如下所示 table1 fields metadata name first name type string nullable false metadata name last name typ
  • svnblame引起的声纳分析时jenkins出错

    当我运行詹金斯任务时 出现以下错误 17 12 49 738 INFO Sensor SCM Sensor 17 12 49 847 INFO SCM provider for this project is svn 17 12 49 84
  • switch case 语句内的表达式

    我正在尝试创建一个 switch 语句 但我似乎无法使用被评估的表达式 而不是设置的字符串 整数 我可以使用 if 语句轻松做到这一点 但 case 应该会更快 我正在尝试以下操作 function reward amount var re
  • 在带有 MacPorts 的 Snow Leopard 上使用 postgresql84 和 postgis 时没有 liblwgeom

    我正在尝试在升级到 Snow Leopard 后恢复并运行我的开发环境 特别是 我需要 postgresql 和 postgis 工作 但我遇到了以下问题 安装完两者后 sudo port install postgresql84 post
  • Git 无法锁定引用“HEAD”:无法解析引用 HEAD

    我正在尝试将更改提交到我的存储库 但收到以下错误 git c diff mnemonicprefix false c core quotepath false commit q F C Users Contronym AppData Loc
  • django 和 mongodb 会让迁移成为过去吗?

    由于 mongo 没有模式 这是否意味着我们在更改模型时不必进行迁移 非关系数据库的迁移过程是什么样的 我认为这是一个非常好的问题 但根据您正在使用的库和您对 迁移 的期望 答案会有点分散 让我们看一下一些常见的迁移操作 添加一个字段 Mo
  • 通过pid查找task_struct的有效方法

    有没有一种有效的方法可以找到task struct对于指定的 PID 无需迭代task struct list 使用以下其中一项有什么问题吗 extern struct task struct find task by vpid pid t
  • 找不到要导入的项目

    我正在寻找 Android 中的 ePub 阅读器 我提到翻页机 http www pageturner reader org downloads 下载了它的 apk 并且它有效 但是当我下载它的源代码时github https githu
  • 如何使用 javascript 获取 MVC 应用程序的基本 URL

    如何使用 javascript 获取基本 URL 例如 当我从 Visual Studio 浏览我的网站时 如果我的 URL 是http localhost 20201 home index 我想得到http localhost 20201