在asp.net mvc中内联javascript中分配路径

在asp.net mvc中内联javascript中分配路径,javascript,asp.net,asp.net-mvc,asp.net-mvc-2,asp.net-mvc-routing,Javascript,Asp.net,Asp.net Mvc,Asp.net Mvc 2,Asp.net Mvc Routing,我使用的是MVC2架构 我有一个JavaScript文件(x.js)…其中包含对象hs(即var hs)的声明 在我的aspx文件中,我使用标记调用(x.js)文件,它运行正常 我正在使用hs变量,并在内联脚本中为我的aspx中的属性赋值-请在下面找到它: <script type="text/javascript"> hs.graphicsDir = '../../Resources/graphics/'; ... ... </script>

我使用的是MVC2架构

我有一个JavaScript文件
(x.js)
…其中包含对象
hs
(即
var hs
)的声明

在我的aspx文件中,我使用
标记调用
(x.js)
文件,它运行正常

我正在使用
hs
变量,并在内联脚本中为我的aspx中的属性赋值-请在下面找到它:

<script type="text/javascript">
    hs.graphicsDir = '../../Resources/graphics/';
    ...
    ...
</script>

hs.graphicsDir='../../Resources/graphics/';
...
...
当我通过Firebug进行调试时,我发现这个内联脚本正在我的环境和发布中执行

问题是,在我的环境中,
graphicsDir
值被认为是完美的,并相应地执行,但在发布中,路径没有被正确采用

请建议如何使其也在部署中运行。

试试这个

hs.graphicsDir ="<%= Url.Content("~/Resources/graphics")%>"
hs.graphicsDir=“”

按照另一个正确答案,您可以在
页面加载方法中使用这样的代码将正确的URL发送到客户端脚本:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "correct_url", "var graphDir = \"" + Url.Content("~/Resources/graphics") + "\";", true);
然后在JS文件中包含以下内容:

hs.graphicsDir = graphDir;
由于它是MVC应用程序,而不是普通的ASP.NET,因此您必须按照所述步骤添加代码-如果您希望避免这种情况,也可以直接在.aspx文件中添加此类代码:

<script type="text/javascript">
var graphDir = "<%=Url.Content("~/Resources/graphics")%>";
</script>

var graphDir=“”;

并且在
.js
文件中有与我上面解释的相同的代码。(使用全局变量)

@ganesh。尝试在js文件中使用它。未测试Yet您不能在
.js
文件中使用它,因为ASP.NET引擎未解析它。我将发布单独的答案,太多了,不能在这里写。他使用的是MVC2。MVC中没有页面加载方法。是吗?不知道,不熟悉MVC,但由于这个问题也被标记为ASP.NET,所以在某个地方应该有类似的东西。编辑:请参见我的编辑。:)