如何通过擦除MVC 4中未通过验证的任何字段来保存表单草稿

时间:2014-04-18 17:05:02

标签: forms validation asp.net-mvc-4

我们需要用户能够在MVC4中保存其表单草稿。 我们已经实现了“保存草稿”按钮,该按钮禁用了 客户端验证完全并提交表单。

现在在服务器端,计划是忽略任何表单字段 有验证错误。例如,如果邮政编码字段具有“abc” 然后我们将忽略该字段并保存其余字段。如果有任何字段 需要但未提供的也将被忽略。

我们试图找出一种优雅的方式在MVC4中执行此操作 IModelBinder。

public class CustomModelBinder : DefaultModelBinder
{
    public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        var result = base.BindModel(controllerContext, bindingContext);
        if (!controllerContext.Controller.ViewData.ModelState.IsValid)
        {
            foreach( var state in controllerContext.Controller.ViewData.ModelState)
            {
                if( state.Value.Errors.Count > 0) {
                    var fieldName = state.Key;
                    // Clear original data field that has the error.
                }
            }
            // Now redo the binding without the fields that presented a problem.
            result = base.BindModel(controllerContext, bindingContext);
        }
        return result;
    }
}

所以上面的问题是如何清除特定的字段数据,以便它可以重新运行 数据绑定并生成模型而没有导致验证错误的字段?

0 个答案:

没有答案