【发布时间】:2019-12-01 23:56:52
【问题描述】:
我目前正在使用 ASP.NET Core、HTML 和 Javascript 编写网站。目前,我有一个网站页面,其中加载了设备图表和统计数据。图表下方是一个区域,用户可以在其中选择要查看其详细信息的特定设备。然后将此信息发送到控制器,控制器将有关它们的信息返回给视图。
但是,虽然我知道 AJAX 调用确实会在我使用断点查看控制器时转到控制器,并且我知道我选择的设备的值已更正,但它总是向控制器返回一个“null”字符串值,并且我不知道为什么。
根据我在 SO 上看到的代码,我尝试了几种不同的编写方式。我的代码与this page 上的代码相似(从结构上讲)。我尝试了解决方案,也就是我现在拥有的代码,但它似乎没有改变任何东西。
这是我当前的 javascript 代码:
function filterInterventions() {
var equipment = $(".equipmentCheckboxes:checkbox:checked").map(function () {
return this.value;
}).get();
$("#IntrvTable tbody tr").remove();
$.ajax({
type: "GET",
data: equipment,
cache: false,
//url: "GiveData?jsonString=",
url: '@Url.Action("GiveData")',
success: function (data) {
if (data) {
alert("success");
var parent = $("#parent");
parent.empty();
parent.append(data);
}
}
});
}
这是我的控制器代码:
public ActionResult GiveData(string jsonString){
//do stuff....
return View("RawData", myModel);
}
当我在浏览器和 IDE 中单步执行时,我知道实际 javascript 中的设备是正确的。例如,如果我选择了设备“AA”和“BB”来查看,我知道我正在发送 ["AA/", "BB/"]。但我就是无法让控制器操作中的“jsonString”为非空。
我认为这可能是因为我正在发送一个数组,但是我在网上找到的关于打开传统的东西也没有帮助。 我很乐意提供任何帮助。谢谢。
【问题讨论】:
-
这里不涉及json。您正在发出 GET 请求,数据被放入 url 查询字符串中,但您没有该数据的参数名称。查看浏览器开发工具网络中使用的 url。会看到网址中没有
?myParam=,因为您还没有在data中设置一个
标签: javascript c# ajax asp.net-core razor