asp .net mvc postdata在控制器中始终为0

问题描述 投票:0回答:1

我有非常简单的代码(asp .net mvc c#),但无法正常工作。当布尔值正确返回时,companyId始终为零。我的postdata是具有ff属性的名为SomeObj的类

public bool isSomeBoolean1 { get; set; }
        public bool isSomeBoolean2 { get; set; }
        public bool isSomeBoolean3{ get; set; }
        public int CompanyId { get; set; }

js:

var formData = formModule.createFormData(containerSelector + someContainer, false);
        formData.append("companyId", $("#myCompanyId").val());

        var promise = baseAjaxWithUpload('/SomeController/SomeAction', 'POST', formData).execute();

        promise.done(function (operationStatus) {
            if (operationStatus.isSuccess) {

            }


        });

布尔属性根据我在表单中的输入正确返回,但不是CompanyId。我尝试将其包装在JSON.stringify中,设置为CompanyId字符串类型,并在传递之前将其放回int但parseInt(CompanyId)。我也将“ CompanyId”设置为“ companyId”,但没有任何效果。

我确保formdata具有我在控制台formData.get(“ CompanyId”)或formData.get(“ companyId”)]中键入的值coz,当我将其更改为该拼写时,它们都具有值,但是变成控制器中为零。

我也尝试过这样做:

var data = {
            CompanyId: $("#myCompanyId").val(),
            isSomeBoolean1 : true,
            isSomeBoolean2 : true,
            isSomeBoolean2: false,

        }

 var promise = baseAjaxWithUpload('/SomeController/SomeAction', 'POST', JSON.stringify(data) ).execute();

所有布尔值都正确地传递给控制器​​,就像formData一样,但不是companyid。它总是为0;

这是我使用它的控制器。

[HttpPost]
public ActionResult SomAction(SomeObj  someObj )
{

}

我还尝试通过添加类型为string的名为CompanyIdString的属性来隔离问题,然后放入诸如formData.append(“ companyIdString”,“ test”)这样的硬编码值,并尝试通过get窥视该值, ,但该字符串在控制器中返回null。我还尝试了大写拼写。

我的意思是,我一直在整个应用程序中传递companyId,直到现在为止都没有问题。我想念什么?

我有非常简单的代码(asp .net mvc c#),但无法正常工作。当布尔值正确返回时,companyId始终为零。我的postdata是名为SomeObj的类,带有ff ...

asp.net-mvc controller form-data
1个回答
0
投票

您可以尝试在AJAX调用中使用application / x-www-form-urlencoded内容类型:

© www.soinside.com 2019 - 2024. All rights reserved.