gpt4 book ai didi

JQuery $.getJSON 向请求 URL 附加一个问号

转载 作者:可可西里 更新时间:2023-11-01 16:02:34 25 4
gpt4 key购买 nike

我在 ASP.NET MVC 网络应用程序上有以下 JSON 请求代码:

var userID = 'id=' + $('#namesList').val();
$.getJSON('/Person/GetPerson/', userID, function(data) {
$('#collar').text(data.collarNumber);
$('#name').text(data.Name);
$('#email').text(data.EmailAddress);
});

这会创建一个请求,例如:http://localhost:48610/Person/GetPerson/?id=6 .为什么里面有个问号?我收到服务器错误 The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32'....

如果我在没有问号的情况下手动发出请求,它会正常工作。

最佳答案

根据定义,URL 中的参数位于“?”之后。在 MVC 中,路由参数实际上不是参数(对于 Web 浏览器),而是路径的一部分。因此,正确的代码是:

    var userID = $('#namesList').val();
$.getJSON('/Person/GetPerson/' + userID, null, function(data) {
$('#collar').text(data.collarNumber);
$('#name').text(data.Name);
$('#email').text(data.EmailAddress);
});

当您的 Controller 实际接受不在 MVC 路由中的额外值时,将 null 替换为参数列表。例如,您的 Controller 可能是:

    public function GetPerson(string id, string type) {
// your code
}

你会这样调用它:

    var userID = $('#namesList').val();
var params = "type=XXX";
$.getJSON('/Person/GetPerson/' + userID, params, function(data) {
$('#collar').text(data.collarNumber);
$('#name').text(data.Name);
$('#email').text(data.EmailAddress);
});

关于JQuery $.getJSON 向请求 URL 附加一个问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2801762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com