Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC 2 RTM包含哪个版本的DataAnnotations_C#_Visual Studio 2008_Asp.net Mvc 2_Data Annotations - Fatal编程技术网

C# ASP.NET MVC 2 RTM包含哪个版本的DataAnnotations

C# ASP.NET MVC 2 RTM包含哪个版本的DataAnnotations,c#,visual-studio-2008,asp.net-mvc-2,data-annotations,C#,Visual Studio 2008,Asp.net Mvc 2,Data Annotations,我正在使用VisualStudio2008进行一个项目,并且已经从MVC2预览版转移到RTM版本。我们希望使用模型验证,例如: public class ViewModel { [Required(ErrorMessage="UserName is required.")] [StringLength(10, ErrorMessage="UserName cannot be greater than 10 chars.")] public string UserName

我正在使用VisualStudio2008进行一个项目,并且已经从MVC2预览版转移到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 for Visual Studio 2008附带了此dll的哪个版本吗?

我认为
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,
查尔斯


注:如果您运行的是64位版本的windows,则目录将以C:\Program Files(x86)

开头,结果表明System.ComponentModel.DataAnnotations.dll版本99.0.0.0似乎来自MVC的“未来”版本。我们使用它是为了使用Validator类

一旦我用标准的GAC版本替换了参考,一切都正常了。我想我所看到的是期货的输入验证,我所期待的是RTM中后期的变化,正如所记录的那样


感谢您的帮助Charles

当模型状态有效时-您的
模型
操作参数中的post值是否正确设置?Charles,是的,模型已正确填充。请参阅下面我对我最终所做工作的回应。