【发布时间】:2019-08-23 22:08:43
【问题描述】:
我有一个 ASP.NET CORE MVC 应用程序,并且在我的一个视图中包含一个 JavaScript 文件。 JavaScript 用于页面上的下拉菜单,该下拉菜单调用控制器上的函数来获取下拉菜单的数据。
$(document).ready(function() {
$('#accounts').change(function() {
var url = '@Url.Content("~/")' + "GetMeters";
var ddlsource = "#accounts";
$.getJSON(url,
{ accountId: $(ddlsource).val() },
function(data) {
var items = '';
$("#meters").empty();
$.each(data,
function(i, meter) {
items += "<option value='" + meter.value + "'>" + meter.text + "</option>";
});
$('#meters').html(items);
});
});
});
单步执行代码,我注意到在 'var url = '@Url.Content("~/")' + "GetMeters";' 之后被执行的 'url' 被设置为 "@Url.Content("~/")GetMeters"。
查看 StackOverflow 上的类似问题,所以我尝试只使用“~/GetMeters”,但它也不起作用。
如果 url 设置为 'https://localhost:44344/Meters/GetMeters' 我在控制器上的函数将被正确调用。解决此问题的最佳方法是什么?谢谢!
【问题讨论】:
-
ASP.NET 不会解析你的 javascript 文件,因此不会处理 Url.Content。
-
为什么希望 Razor 语法在 JavaScript 文件中工作?
标签: javascript c# asp.net-core