Какая версия DataAnnotations включена в ASP.NET MVC 2 RTM - PullRequest
1 голос
/ 14 мая 2010

Я работаю над проектом, использующим Visual Studio 2008, и перешел с предварительного просмотра MVC 2 на версию RTM. Мы хотели бы использовать проверку модели, например:

public class ViewModel 
{
    [Required(ErrorMessage="UserName is required.")]
    [StringLength(10, ErrorMessage="UserName cannot be greater than 10 chars.")]
    public string UserName { get; set; }
}

[HttpPost]
public ActionResult Register(ViewModel model)
{
    if (ModelState.IsValid){} // Always true
}

Однако ModelState.IsValid всегда возвращает true. У меня есть подозрение, что это может быть связано с версией System.ComponentModel.DataAnnotations.dll, на которую мы ссылаемся, в настоящее время это версия 99.0.0.0, которая кажется довольно странной.

Кто-нибудь знает, какая версия этой библиотеки включена в MVC 2 RTM для Visual Studio 2008?

Ответы [ 2 ]

0 голосов
/ 18 мая 2010

Оказывается, что System.ComponentModel.DataAnnotations.dll версии 99.0.0.0, по-видимому, происходит от версии MVC «Futures». Мы использовали его, чтобы мы могли использовать класс Validator.

Как только я заменил ссылку на стандартную версию GAC, все это работает. Я думаю, что я видел входную проверку фьючерсов, и я ожидал поздних изменений, сделавших его в RTM, как это документировано Брэд Уилсон .

Спасибо за вашу помощь Чарльз

0 голосов
/ 14 мая 2010

Я не думаю, что System.ComponentModel.DataAnnotations поставляется с MVC, это часть базовой платформы .NET.

Файл dll, на который вы должны ссылаться, находится в:

.NET 3.5:

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Server Core\System.ComponentModel.DataAnnotations.dll

.NET 4:

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.ComponentModel.DataAnnotations.dll

По крайней мере, они там на моем компьютере!

HTHS
Charles

Ps. Если вы используете 64-битную версию Windows, каталоги начнутся с C:\Program Files (x86)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...