gpt4 book ai didi

javascript - ASP.Net MVC 不映射 ajax 调用的参数

转载 作者:行者123 更新时间:2023-11-27 22:58:09 25 4
gpt4 key购买 nike

我想在 ASP.Net Core 1.0 中发送带有多个参数的请求(我不知道这是否重要)。

我有以下型号:

[DataContract]
public class RegistrationConfigContract
{
[DataMember]
public string ServiceType { get; set; }
[DataMember]
public int BatchTimeout { get; set; }
[DataMember]
public int BatchSize { get; set; }
[DataMember]
public ActorFinishingTypeEnum FinishingType { get; set; }
}

我有以下 Controller 方法:

public void SendRegistration(string nodeName, NodeTypeEnum nodeType, RegistrationConfigContract model)
{

}

我还有一个 JS 尝试调用它:

function sendRegistration(nodeName, nodeType) {
var model = {
ServiceType: $("#serviceType").html(),
BatchTimeout: $("#batchTimeout").html(),
BatchSize: $("#batchSize").html(),
FinishingType: $("#finishingType").html()
};

var request = {
nodeName: nodeName,
nodeType: nodeType,
model: model
}

//$.post('@Url.Action("SendRegistration")', request);
$.ajax({
url: '@Url.Action("SendRegistration")',
type: "POST",
dataType: 'json',
data: JSON.stringify(request),
async: false,
cache: false,
traditional: true,
contentType: 'application/json'
});
}

但是根据 Chrome/Edge 调试器的说法,在服务器端我总是得到 null,而在 JS 端一切都很好。

我在这里做错了什么?我尝试使用我在谷歌上搜索到的代码来解决这个问题,但它不起作用。

原始 HTTP 请求:

POST http://localhost:8080/Configuration/SendRegistration HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: application/json, text/javascript; q=0.01
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Referer: http://localhost:8080/Configuration
Content-Length: 156
X-Compress: 1
Proxy-Authorization: 6e9b34bd44817cf5c254e1ccb4fe7b31ecd526ea9e025e06a16baca626af6be0ea7fa102c2205f0e
Connection: keep-alive

{"nodeName":"zhdp","nodeType":"DocumentProducer","model":{"ServiceType":"jjjjjj","BatchTimeout":"33535","BatchSize":"6666","FinishingType":"UpdateMessage"}}

最佳答案

问题出在模型绑定(bind)上......ASP.NET Core 中的模型绑定(bind)有所不同。您应该使用适当的属性来标记操作的参数,例如[FromBody] 或 [FromForm]。另外,您可以使用普通形式的帖子或 Ajax发布,但不能同时发布...

更多信息请点击:https://andrewlock.net/model-binding-json-posts-in-asp-net-core/

关于javascript - ASP.Net MVC 不映射 ajax 调用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37390976/

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