2012-08-27 54 views
1

我有这个模型中的ASP.NET MVC2项目:客户端验证MVC 2号错误需要

[DisplayName("Valor(%)")] 
    [Required(ErrorMessage = "Este dato es requerido")] 
    public decimal HOJ_ATI_CONT_SAPO_VALOR1 { get; set; } 

    [DisplayName("Valor(%)")] 
    public decimal HOJ_ATI_CONT_SAPO_VALOR2 { get; set; } 

查看:

Html.EnableClientValidation(); 

和输出的客户端验证:

{ 
     "FieldName": "HOJ_ATI_CONT_SAPO_VALOR1", 
     "ReplaceValidationMessageContents": true, 
     "ValidationMessageId": "HOJ_ATI_CONT_SAPO_VALOR1_validationMessage", 
     "ValidationRules": [ 
      { 
       "ErrorMessage": "Este dato es requerido", 
       "ValidationParameters": {}, 
       "ValidationType": "required" 
      }, 
      { 
       "ErrorMessage": "The field Valor(%) must be a number.", 
       "ValidationParameters": {}, 
       "ValidationType": "number" 
      } 
     ] 
    }, 
    { 
     "FieldName": "HOJ_ATI_CONT_SAPO_VALOR2", 
     "ReplaceValidationMessageContents": true, 
     "ValidationMessageId": "HOJ_ATI_CONT_SAPO_VALOR2_validationMessage", 
     "ValidationRules": [ 
      { 
       "ErrorMessage": "The Valor(%) field is required.", 
       "ValidationParameters": {}, 
       "ValidationType": "required" 
      }, 
      { 
       "ErrorMessage": "The field Valor(%) must be a number.", 
       "ValidationParameters": {}, 
       "ValidationType": "number" 
      } 
     ] 
    } 

为什么十进制字段添加默认的必需属性? 我需要删除必需的验证类型。

回答

0

您的小数位数需要可以为空,否则MVC会让它们为必需的;

[DisplayName("Valor(%)")] 
[Required(ErrorMessage = "Este dato es requerido")] 
public decimal? HOJ_ATI_CONT_SAPO_VALOR1 { get; set; } 

[DisplayName("Valor(%)")] 
public decimal? HOJ_ATI_CONT_SAPO_VALOR2 { get; set; } 

我相信这是因为有一个空的小数没有这样的事 - 如果没有设置小数点,然后将它保存为“0”。如果您尝试将空白字段传递给MVC操作方法的小数参数,则这更为明确。

+0

谢谢!你是对的 – undead85