如何解决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中所做的示例,这样做存在一些问题,即当ID大于5的某人在搜索或导致重复时出现错误时,理想的情况是使他们以字符串格式发送。只要id在5个字符之间,此解决方案就可以使用。
参考:
https://docs.microsoft.com/pt-br/dotnet/standard/base-types/custom-numeric-format-strings
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。