我有返回 JSON 数据的 ASP.NET MVC 操作。我的客户端使用 jQuery 的 ajax
函数来检索此数据并将其显示在屏幕上。我在我的 JavaScript 中使用 Controller 操作的绝对路径:
$.ajax({
url: '/Home/Load',
type: 'post',
dataType: 'json'
})
问题是在某些环境下,我们会在前面添加一个额外的虚拟目录,所以URL实际上是/Path/To/App/Home/Load
。我想知道是否有一种方法可以编写我的 JavaScript,这样它就不需要在我每次部署时都更新。我可以使用相对 URL,例如 ../Home/Index
,但有时我会四处移动我的 JavaScript 代码。使用 MVC 的 bundler 时,事情也会变得更加棘手。如果 ~
字符有效,那就太好了。
最佳答案
这是我的做法:
在您的主视图中添加以下行(此处使用 Razor 语法):
<script type="text/javascript">
var appBaseUrl = "@Url.Content("~")";
</script>
然后在 Javascript 中:
$.ajax({
url: appBaseUrl + 'Home/Load',
type: 'post',
dataType: 'json'
})
关于javascript - 从 JavaScript 引用 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15138916/