参见英文答案 >
ASP.NET MVC: Best way to trim strings after data entry. Should I create a custom model binder?9个
我发现所有通过Model传递的值都没有在ASP.net MVC3中修剪
我发现所有通过Model传递的值都没有在ASP.net MVC3中修剪
有办法吗
>在Model中的每个字段上应用一个trim()(所有字符串字段至少为;但所有表单字段都是由Model处理之前的字符串,因此更好地修整它们)
>必须在ModelState.IsValid()之前(因为我经常发现代码卡在奇怪的ModelState.IsValid,后来发现因为窗体项没有被修剪.)
谢谢.
解决方法
您必须创建一个自定义模型binder来修剪任何一个字符串的模型属性.
参考文献:
Custom model binding using IModelBinder in ASP.NET MVC
@L_404_2@
6 Tips for ASP.NET MVC Model Binding
A Better Model Binder
基本上你可以采取以下两种方法之一:
>实现IModelBinder界面
> DefaultModelBinder类的子类
例
public class StringTrimmingBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { // trim your string here and act accordingly // in the case the model property isn't a string return base.BindModel(controllerContext,bindingContext); } }