ASP.Net MVC不会为ajax调用映射参数

亚历克斯·朱可夫斯基(Alex Zhukovskiy)

我想在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; }
}

我有以下控制器方法:

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端,一切都很好。

我在这里做错了什么?我尝试使用通过Google搜索的代码来解决此问题,但是它不起作用。

原始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"}}
互联网

问题在于模型绑定... ASP.NET Core中的模型绑定是不同的。您应该使用[FromBody]或[FromForm]等适当的属性标记动作的参数。另外,您既可以发布普通表单,也可以发布Ajax,但不能同时使用两者。

更多信息在这里:https : //andrewlock.net/model-binding-json-posts-in-asp-net-core/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET MVC动态参数

来自分类Dev

ASP.net MVC路由参数

来自分类Dev

asp.net mvc 5需要ajax调用的基本URL

来自分类Dev

asp.net mvc cssRewriteUrlTransform多个参数

来自分类Dev

对ASP.NET MVC控制器的Ajax POST调用,给出net :: ERR_CONNECTION_RESET

来自分类Dev

asp.net mvc ajax发送两个参数

来自分类Dev

ASP.NET Ajax不会调用网址

来自分类Dev

ASP.NET Core MVC控制器从Ajax调用接收输入参数的null

来自分类Dev

Asp.Net核心MVC Javascript Ajax参数null HttpPost

来自分类Dev

如何使用参数ASP.NET MVC调用Ajax数据表?

来自分类Dev

C#和ASP.NET MVC:使用Ajax调用来调用视图

来自分类Dev

ASP.NET MVC当前请求url(ajax调用问题)

来自分类Dev

用jquery asp.net mvc进行ajax调用

来自分类Dev

向ASP.NET MVC 5.0控制器方法添加参数导致JQuery数据表Ajax调用挂起

来自分类Dev

带参数的asp.net mvc路由

来自分类Dev

jQuery Ajax调用返回错误:ASP.NET MVC

来自分类Dev

在ajax之后自动调用asp.net mvc索引操作

来自分类Dev

ajax发布未将参数映射到asp.net控制器操作

来自分类Dev

ASP.NET MVC调用方法

来自分类Dev

通过 Ajax 调用填充 ASP.NET MVC Kendo Grid

来自分类Dev

Ajax 无法调用函数,ASP.net MVC

来自分类Dev

从 AJAX (ASP.NET MVC) 填充 DropdownList

来自分类Dev

asp.net MVC 参数未通过

来自分类Dev

jquery ajax调用asp.net上的多个参数

来自分类Dev

AJAX 调用后无法显示值 (ASP.NET MVC)

来自分类Dev

在 ASP.NET MVC 中使用 ajax javascript 调用视图

来自分类Dev

ASP.NET MVC Ajax JSON jQuery 不会将参数发送到`ActionResult`

来自分类Dev

Asp.net MVC Ajax 在 GET HTML 上调用空参数

来自分类Dev

来自 ajax 调用 asp.net MVC 模型的验证错误

Related 相关文章

热门标签

归档