C# ASP.NET MVC 2 RTM包含哪个版本的DataAnnotations
我正在使用VisualStudio2008进行一个项目,并且已经从MVC2预览版转移到RTM版本。我们希望使用模型验证,例如: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
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,是的,模型已正确填充。请参阅下面我对我最终所做工作的回应。