开发者

ASP.NET - MVC3 property decoration?

开发者 https://www.devze.com 2023-02-07 05:58 出处:网络
Is there an attribute I can decorate a single property on my model to tell the engine not to include the property in the validation routine?

Is there an attribute I can decorate a single property on my model to tell the engine not to include the property in the validation routine?

[DoNotValidate] or [ValidateIgnore]

----------------------More info. Ok, I need to give you more information. In my situation, I have a temporary decimal value on my model that is not persisted, that gets formatted into currency. $540,000. In this one case I do not want to strip the formatting out before I call TryUpdateModel. When you use TryupdateModel, it mvc will try and convert that string text box value back into a decimal and Model.IsValid will return false. I know how to get around this situation, using javascript, but it would be easi开发者_运维技巧er if I could tell mvc not to validate that field.


Any model properties not decorated with validation attributes should be ignored.

public class MyModel 
{
     [Required]
     public string SomeProperty { get; set; }

     public string IgnoredProperty { get; set; }
}

Should validate that SomeProperty is required, but nothing will happen with IgnoredProperty.

The best tutorial IMHO on Model validation is http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

(even though it says for MVC 2, it's applicable).


Change the type of your decimal to nullable decimal to prevent required validation:

    public class MyModel
    {
        public decimal MyValidatingDecimal { get; set; }

        public decimal? MyNonValidatingDecimal { get; set; }
    }

MyValidatingDecimal will be required (since it is a value-type), while MyNonValidatingDecimal will not be required.


Properties will only be validated if you explicitly apply validation attributes to them.

0

精彩评论

暂无评论...
验证码 换一张
取 消