私のORM(LightSpeed)は、NameとAgeを使用してAnimalsテーブルに対してこれを生成します。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"); }
}
[必須]属性が追加された場合:
[必須]属性が追加されていない場合:(検証のLightSpeedの奇妙なレンダリングに注意してください)
名前を記入して:
上の画像では、上部の検証はLightSpeed(ValidationSummaryに配置)であり、側面の検証はMVC3(ValidationMessageForに配置)です。
現在、サーバー側の検証のみを使用しています。
質問: MVC3でLightSpeed検証をうまく機能させるにはどうすればよいですか?
私はそれがこの分野の何かだと思いますhttp://www.mindscapehq.com/staff/jeremy/index.php/2009/03/aspnet-mvc-part4/
サーバー側の検証では、DefaultModelBinderの動作を利用するのではなく、LightSpeed検証からエラーをより正確に出力するカスタムモデルバインダーを使用する必要があります。MvcのコミュニティコードライブラリからEntityModelBinderを直接使用または適合させる方法をご覧ください