验证所有字符串

时间:2013-12-05 09:54:41

标签: validation asp.net-mvc-4

我想禁止使用|提交到我网站的所有字符串的字符,但我不想将验证器属性应用于每个字符串属性,因为它无法管理。

我可以验证模型绑定器中的所有字符串(我目前正在使用一个来修剪所有字符串)但我不认为它会与标准验证框架集成。即生成客户端验证。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

我没有在客户端上使用此功能但是我可以在自定义模型绑定器中捕获所有狡猾的字符串,并使表单无效以及以下内容...

public class CustomStringModelBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        ValueProviderResult valueResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);

        if (valueResult == null || string.IsNullOrEmpty(valueResult.AttemptedValue))
        {
            return null;
        }

        if (valueResult.AttemptedValue.Contains("|"))
        {
            bindingContext.ModelState.AddModelError(bindingContext.ModelName, "The | character is prohibited.");
        }

        return valueResult.AttemptedValue.Trim();
    }
}