asp.net-mvc – 双值绑定问题
发布时间:2020-12-16 04:13:22 所属栏目:asp.Net 来源:网络整理
导读:在我的项目中,我希望允许用户以2种格式输入双值:使用’,’或’.’作为分隔符(我对指数形式不感兴趣).默认值为分隔符’.’不行. 我希望此行为适用于复杂模型对象中的所有双属性(目前我使用包含标识符和值的对象集合). 我应该使用什么:价值提供商或模型粘合
在我的项目中,我希望允许用户以2种格式输入双值:使用’,’或’.’作为分隔符(我对指数形式不感兴趣).默认值为分隔符’.’不行.
我希望此行为适用于复杂模型对象中的所有双属性(目前我使用包含标识符和值的对象集合). 我应该使用什么:价值提供商或模型粘合剂?请展示解决我的问题的代码示例. 解决方法
您可以使用自定义模型绑定器:
public class DoubleModelBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { var result = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); if (result != null && !string.IsNullOrEmpty(result.AttemptedValue)) { if (bindingContext.ModelType == typeof(double)) { double temp; var attempted = result.AttemptedValue.Replace(",","."); if (double.TryParse( attempted,NumberStyles.Number,CultureInfo.InvariantCulture,out temp) ) { return temp; } } } return base.BindModel(controllerContext,bindingContext); } } 可以在Application_Start中注册: ModelBinders.Binders.Add(typeof(double),new DoubleModelBinder()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – 如何在ASP.NET Core中实现angular 4 serve
- asp.net – SelectedValue对DropDownList的SelectedItem.Va
- Asp.net mvc 知多少(六)
- asp.net – 如何忽略全局asax中图像的日志记录错误
- 在提供页面之前确定ASP.NET页面视图状态的大小
- asp.net – Jquery datepicker弹出窗口在IE8的选择日期没有
- asp.net – 如何在SQL数据库中创建和存储用户定义的自定义字
- asp.net – 反复调用AddImageUrl(url)来汇编pdf文档
- asp.net – 如何关闭我在JavaScript中打开的所有IE浏览器窗
- Response.Redirect()vs Response.RedirectPermanent()
推荐文章
站长推荐
- asp.net – 在调用异步方法时不使用等待来防止死
- asp.net-mvc – ASP.NET MVC术语让我沮丧 – 为什
- asp.net – 如何迭代通过自定义vb.net对象的每个
- asp.net – 缓存viewstate?
- asp.net – 在Application_Error中将异常转换为H
- .net – 使用外部托管站点设置登台环境?
- asp.net-mvc – Facebook Real-time Updates不发
- asp.net – Cookiless Session是安全隐患吗?
- asp.net – Model-Repository-Service-Validator
- 漫谈认证与授权
热点阅读