我的 ORM (LightSpeed) 为 Animals 表生成这个,带有 Name 和 Age。使用 MVC3 和 Razor
[Serializable]
[System.CodeDom.Compiler.GeneratedCode("LightSpeedModelGenerator", "1.0.0.0")]
[System.ComponentModel.DataObject]
[Table(IdColumnName="AnimalID", IdentityMethod=IdentityMethod.IdentityColumn)]
public partial class Animal : Entity<int>
{
[ValidatePresence]
[ValidateLength(0, 50)]
private string _name;
[ValidateComparison(ComparisonOperator.GreaterThan, 0)]
private int _age;
public const string NameField = "Name";
public const string AgeField = "Age";
[System.Diagnostics.DebuggerNonUserCode]
[Required] // ****I put this in manually to get Name required working
public string Name
{
get { return Get(ref _name, "Name"); }
set { Set(ref _name, value, "Name"); }
}
[System.Diagnostics.DebuggerNonUserCode]
public int Age
{
get { return Get(ref _age, "Age"); }
set { Set(ref _age, value, "Age"); }
}
添加了 [Required] 属性:
没有添加 [Required] 属性:(注意 LightSpeed 奇怪的验证渲染)
填写姓名:
在上图中 - 顶部的验证是 LightSpeed(放入 ValidationSummary),侧面是 MVC3(放入 ValidationMessageFor)
目前仅使用服务器端验证。
问题:如何让 LightSpeed 验证在 MVC3 中运行良好?
我认为这是这个领域的东西http://www.mindscapehq.com/staff/jeremy/index.php/2009/03/aspnet-mvc-part4/
对于服务器端验证 - 您将需要使用自定义模型绑定器,它更精确地从 LightSpeed 验证中发出错误,而不是利用 DefaultModelBinder 行为。查看直接使用或改编 Mvc 社区代码库中的 EntityModelBinder