【发布时间】:2012-06-28 11:56:51
【问题描述】:
我有一个 localhost 有几个项目,所以这个项目在 VS2010 属性->web->使用本地 IIS web server = 'localhost/project4/'。 (我不能使用正常的调试 VS 开发服务器,因为某些组件在我的项目中不起作用)无论如何,localhost 没什么大不了的,所以我继续编码。
现在,当我调用 .load('/Account/LogOn'); 时,在 ajax 中它给了我“localhost/Account/LogOn”,但我真正想要的是“localhost/project4/Account/LogOn”,因为它位于 project4 目录中,而不是根目录中。
知道如何告诉 ajax 我需要域名和 URL 其余部分之间的虚拟目录前缀吗?
编辑-------------------------------------------
谢谢大家,结合你的所有知识,我想最好的方法是:
将 js 脚本包含到 .cshtml 服务器端并使用“~/Account/LogOn/”让 .net 找出路径。
创建一个全局变量 remove_me_debug_only_virtual_directory = "/project4/";在 js 代码中。将其附加到域名。这样我们就不用把.net拉进水里,用.cshtml写js代码了。
如果可以的话,把项目移到localhost/root,在这种情况下我不能,因为工作中的其他人想访问这个联网的服务器并做演示。
【问题讨论】:
-
你试过
.load('Account/LogOn');(没有前面的/)吗? -
@J Steen,我认为 tilda 仅适用于 .cshtml 或 .aspx 中的 @Url.Content("~/Account/LogOn") 之类的服务器端?似乎在 js 文件中不起作用?我最终将拥有 'localhost/~/Account/LogOn' 并且 .load() 不会为我解析它?
-
@Anthony G,没有前面的“/”会带来更多问题,比如说,你有一个 ajax LogOnPartial 第一次从 Home/Index/ 调用你会得到 'localhost/project4/Account/logOn',好的。但是当你去 Account/Index/ 再次调用 LogOnPartial 时,你会得到'localhost/project4/Account/Account/LogOn',重复两次,这是不好的。
标签: javascript jquery .net ajax