Asp.net mvc MVC解析.JS文件中的url

Asp.net mvc MVC解析.JS文件中的url,asp.net-mvc,asp.net-mvc-3,iis,Asp.net Mvc,Asp.net Mvc 3,Iis,所以我在一个单独的js文件jquerySliderMenu.js中有一些Javascript 要解析图像的url,请执行以下操作: var imgUrl=$Url.resolve~/Assets/Javascript/Img 可在开发人员、iis 6中找到工作 但在Prodiis7.5上,它决定 而不是 这会导致错误 我记得IT人员必须添加.MVC。但是我不记得他们为什么或者怎么做的 有没有更好的方法解决将.mvc.aspx添加到所有内容的设置中的问题?请问,那是什么设置 坦斯克 Eric-您不

所以我在一个单独的js文件jquerySliderMenu.js中有一些Javascript

要解析图像的url,请执行以下操作: var imgUrl=$Url.resolve~/Assets/Javascript/Img

可在开发人员、iis 6中找到工作

但在Prodiis7.5上,它决定

而不是

这会导致错误

我记得IT人员必须添加.MVC。但是我不记得他们为什么或者怎么做的

有没有更好的方法解决将.mvc.aspx添加到所有内容的设置中的问题?请问,那是什么设置

坦斯克


Eric-

您不应该尝试解析您的javascript文件中的任何URL。您应该使用url帮助程序在HTML中生成它们。然后Javascript会悄悄地读取和使用它们

您可以使用HTML5数据-*属性,就像不引人注目的AJAX和客户端验证一样。例如,假设DOM中有以下元素

<div id="foo" data-url="@Url.Content("~/Assets/Javascript/Img")">some contents</div>

或者,如果您正在悄悄地Ajaxing一个锚或一个表单,您可以直接获取相应DOM元素上的href或action属性,这些属性当然是由Url/Html帮助程序生成的,从而确保正确的Url与路由相关。

我不知道为什么在IIS 6中会起作用。那没有多大意义。MVC框架不支持JavaScript,因此它无法将~转换为实际位置。
var imgUrl = $('#foo').data('url');