微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#webAPI无法将原始整数值绑定到主体模型?

如何解决C#webAPI无法将原始整数值绑定到主体模型?

我的问题是,当我在有效载荷主体中将任何以零开头的整数值(012345)发送到C#Web API时,接收到的值没有第一位数字(12345)。它忽略了零。如何强制API接收原始数据?

gulp.task('components-scripts',function () {
    var components = getComponentGlobs('coffee');
    gulp.src(components)
        .pipe(sourcemaps.init())
        .pipe(concat('main.js'))
        .pipe(coffee().on('error',util.log))
        .pipe(inject.after('(function() {','\njQuery(document).ready(function ($) {\n'))
        .pipe(inject.before('}).call(this);','});\n'))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest(path.source + 'scripts'));
});

有效载荷

[HttpPost]
    public void insertdata([FromBody]Model model)
    {
     // model.id=1234    
    }

解决方法

整数不能有@Richard在评论中提到的前导零

您应该在模型中使用字符串代替。

public class YourModel {
   public string id {get;set;}
}

[HttpPost]
public void insertdata(YourModel model)
{
   model.id=01234    
}
,

我认为这取决于模型对象中id属性的DataType。

如果id是一个字符串,例如01234中的前导零将被保留。只要您的要求不是特别限制您将id属性设置为int

public class Model 
{

public string id { get; set;}
...

}
,

发送任何整数值作为字符串“ 012345”-有效负载{id:“ 01234”}。达到它的另一种方法是使用string.PadLeft-model.Id.ToString(),PadLeft(5,“ 0”);

,

Poc visual studio c# console

早安,

按照我在POC中所做的示例,这样做存在一些问题,即当ID大于5的某人在搜索或导致重复时出现错误时,理想的情况是使他们以字符串格式发送。只要id在5个字符之间,此解决方案就可以使用。

参考:

https://docs.microsoft.com/pt-br/dotnet/standard/base-types/custom-numeric-format-strings

https://docs.microsoft.com/pt-br/dotnet/standard/base-types/standard-numeric-format-strings#DFormatString

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。