我的第一个网络应用程序,这是我第一次部署。
所有人都在本地工作,但不是在偏远地区。
我使用了VS2010的Web部署选项。
首先:
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
该应用知道可以在以下位置找到Site.css:
domain.com/VDir/Content/Site.css
但它正在寻找jquery:
... domain.com/Scripts/jquery
奇怪的是它可以找到css而不是jquery。
好的,我在这里看到我可以使用:
<script src="<%: Url.Content ("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script>
有了这个,我得到了jquery的工作。
但是... jquery管理Urls的所有例子都是:
$.ajax({
url: "/Home/Index",
...
但有了这个,正在寻找:
domain.com/Home/Index
我记得当我阅读asp.net mvc书时,路由引擎足够聪明,无法忽略Virtual Dir。换句话说,网址的一部分是“domain.com/VDir”,另一部分是“/ Home / Index”
总之,我做错了什么?我如何告诉我的应用程序在VDIR下工作,所有网址都在网址上有VDir路径。
谢谢。
答案 0 :(得分:1)
在您的site.master中使用此脚本
<script type="text/javascript">
window.MVCURL = '<%= Url.Action("--Action--","--Controller--") %>';
</script>
现在在你的jquery中你可以使用
var myRoute = window.MVCURL.replace("--Action--", "yourActionName")
myRoute = myRoute.replace("--Controller--", "yourControllerName")