0

この質問は重複しているように聞こえるかもしれませんがMVC Foolproof validaiton、条件付き検証を提案している人もいれば、エンティティフレームワークではうまく機能しないと言っている人もいるため、どの回答にも満足していません

私はMVC Foolproof RequiredIf validation自分のプロジェクトで使用しています。クライアント側でうまく機能し、サーバー側でも検証が機能しています。

 [RequiredIf("STCompulsory",Operator.EqualTo,true,ErrorMessage="Please enter Registration No")]
    public string STRegNo { get; set; }

しかし、データを挿入するために呼び出すdb.Savechanges()と、例外が発生します

An unexpected exception was thrown during validation of 'STRegNo' when invoking 
Foolproof.RequiredIfAttribute.IsValid. See the inner exception for details.

内部例外

The method or operation is not implemented.
4

1 に答える 1

1

Operator.EqualToパラメータは必要なく、単純に

[RequiredIf("STCompulsory", true, ErrorMessage="Please enter Registration No")
public string STRegNo { get; set; }

フールプルーフ属性には EF でいくつかの問題があり、この作業の問題[RequiredIf]で詳細に説明されているという点で正しいです(いくつかの提案された変更と共に)。

最も簡単な解決策は、ビューでデータ モデルではなくビュー モデルを使用し、属性をビュー モデル プロパティに適用することです。

于 2015-10-19T11:26:17.760 に答える