asp.net-core – 当返回null而不是控制器中设置的值时,Modelbinder默认为0
发布时间:2020-05-25 10:55:55 所属栏目:asp.Net 来源:互联网
导读:我有一个自定义模型绑定器,用于REST API,如下所示: public class CustomQueryModelBinder : IModelBinder{ public TaskModelBindingResult BindModelAsync(ModelBindingContext bindingContext) { if (!String.IsNull
|
我有一个自定义模型绑定器,用于REST API,如下所示: public class CustomQueryModelBinder : IModelBinder
{
public Task<ModelBindingResult> BindModelAsync(ModelBindingContext bindingContext)
{
if (!String.IsNullOrWhiteSpace(bindingContext.ModelName) && bindingContext.ModelType == typeof(short) && bindingContext.ValueProvider.GetValue(bindingContext.ModelName) != null)
{
short value;
var val = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).FirstValue as string;
if (String.IsNullOrWhiteSpace(val))
{
return ModelBindingResult.SuccessAsync(bindingContext.ModelName,val);
}
else if (Int16.TryParse(val,out value) && value >= 0)
{
return ModelBindingResult.SuccessAsync(bindingContext.ModelName,value);
}
else
{
bindingContext.ModelState.AddModelError(bindingContext.ModelName,"The value is invalid.");
}
}
return ModelBindingResult.FailedAsync(bindingContext.ModelName);
}
}
并且在URI中未指定自定义值的情况下,它应默认为有效值(大于0),但它始终默认为0,即使控制器如下所示: public async Task<IActionResult> GetAsync(
[ModelBinder(BinderType = typeof(CustomQueryModelBinder))]short value = 100,
当从ModelBinder返回null时,这里的基本值应设置为100作为其默认值. 但是这没有发生,并且它一直被返回为0,这在尝试执行Get时导致System.ArgumentOutOfRangeException. 我们正在使用RC1. 解决方法用短的替换短值= 100?值= 100似乎对我有用. Hooray适用于可空类型.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 为什么IFormFile显示为null,我该如何解决?
- ASP.NET MVC 3 HtmlHelper异常不能识别继承的接口上的Model
- asp.net-mvc – 通过programmming导入Ms Access数据
- asp.net-mvc – ASP.NET MVC运行IIS7部署问题
- 如何在ASP.NET 5和Visual Studio 2015 CTP中添加常规类lib引
- asp.net-mvc – 在ASP.NET MVC中定制授权
- asp.net – jQuery模态窗体对话框回发问题
- model-view-controller – 比较Dates DataAnnotations验证a
- asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示
- asp.net-mvc – 直接下载链接到ASP.NET MVC 5 for VS 2012
推荐文章
站长推荐
- ASP.NET MVC – 如何从局部视图中获取当前操作?
- asp.net-mvc – View中的意外NullReferenceExcep
- HTTPModules和Global.asax – ASP.NET页面生命周
- 解决ASP.NET中的后台任务中的Autofac组件
- asp.net-mvc – LINQ Distinct()
- asp.net-mvc – ASP.NET MVC – 如何获取一个动作
- 异常处理 – 如何处理WebAPI中的控制器构造函数中
- asp.net-mvc-3 – 在控制器操作完成后使用Javasc
- asp.net * WebForms *开发人员将来可以期待什么?
- asp.net会员 – 删除asp.net会员和角色提供者
热点阅读
