2011-01-30 3 views
2

Есть ли атрибут, который я могу украсить одним свойством моей модели, чтобы сообщить движку не включать свойство в процедуру проверки?ASP.NET - свойство собственности MVC3?

[DoNotValidate] или [ValidateIgnore]

---------------------- Больше информации. Хорошо, мне нужно предоставить вам больше информации. В моей ситуации у меня есть временное десятичное значение для моей модели, которое не сохраняется, которое форматируется в валюте. $ 540000. В этом случае я не хочу удалять форматирование, прежде чем я вызову TryUpdateModel. Когда вы используете TryupdateModel, mvc попытается преобразовать значение этого текстового поля в десятичное целое, а Model.IsValid вернет false. Я знаю, как обойти эту ситуацию, используя javascript, но было бы проще, если бы я мог сказать mvc не проверять это поле.

+0

Зачем вам этот атрибут? – frennky

ответ

1

Изменить тип вашего десятичного в обнуляемого десятичного для предотвращения требуемой проверки: будет запрашиваться

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

     public decimal? MyNonValidatingDecimal { get; set; } 
    } 

MyValidatingDecimal (так как это значение типа), в то время как MyNonValidatingDecimal не требуется.

+0

Вот что я искал Магнуса. Спасибо. – Terrence

0

Свойства будут подтверждены только в том случае, если вы явно применяете к ним атрибуты проверки.

2

Любые свойства модели, не украшенные атрибутами проверки, должны игнорироваться.

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

    public string IgnoredProperty { get; set; } 
} 

Следует проверить, что SomeProperty требуется, но ничего не произойдет с IgnoredProperty.

Лучший учебник ИМХО по валидации модели является http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

(даже если он говорит, что для MVC 2, это применимо).

Смежные вопросы