我有以下情况。
我开发了我的第一个MVC Asp.Net应用程序。它在我的服务器上运行,地址如下:
http://localhost:59441/
我写了一些类似于这样的 JQuery Post 方法
$.ajax({
type: "POST",
url: "/CeduleGlobale/UpdateCheckBox", ...
CeduleGlobale是我的Controller名称 和 UpdateCheckBox是我的方法名称
当我将应用程序放在测试服务器上时,它被放置在虚拟目录中
因此应用程序现在是
http://testServer/JprApplication/
不再需要指定端口号,也需要应用程序名称。
测试开始后,我很快注意到我的JQuery Post调用不再起作用了...
我进行了修改,现在URL为
/JprMvc/CeduleGlobale/UpdateCheckBox
问题有两个方面:
- 这使得在我的开发机上进行测试很困难,因为IIS Express不允许我指定虚拟目录。
- 我不喜欢在JQuery中硬编码虚拟目录名称,因为我不知道应用程序在生产环境中会有什么名称,因此我必须在安装应用程序之前修改我的脚本。
我确定我错过了一些基本的东西来简化这个问题。
谢谢。
Server.MapPath
,因为它会暴露映射到该虚拟路径的物理目录。你可能想使用Request.ApplicationPath
,这通常用于在运行时生成“approot”字符串以供JS方法使用(特别是对于COTS产品,其中应用程序名称不能硬编码)。 - nothingisnecessary