1

MVC パターンを使用して依存プロパティをチェックするには、カスタム属性を記述する必要があります。必須フィールドをチェックするために System.ComponentModel.DataAnnotations を使用しています。私の WPF アプリケーションにはリストビュー コントロールが含まれています。ビューが最初に読み込まれたときに、モーダル クラスで記述されたすべてのプロパティがリストビューに入力されます。ユーザーがリストビューに新しいプロパティを含めたり除外したりできる機能を提供しています。ただし、他のプロパティが依存しているプロパティをユーザーが除外できるようにしたくありません。

たとえば、securitynumber プロパティが employeename プロパティに依存する場合。従業員名を除外しながら、「セキュリティ番号は従業員名に依存するため、従業員名を除外できません」という検証メッセージを表示したい

たとえば、カスタム属性の作成と使用について助けが必要です

[Dependencyon("Employeename")]
public object securitynumber { get ;set ;}

必要な場所で「Dependencyon」の値を取得したい。

4

2 に答える 2

2

3つのオプションがあります。

A)CustomValidationAttributeを使用して、カスタムビルドのバリデーターを提供できます。

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute.validatortype(v=vs.95).aspx

B)ValidationAttributeから継承するクラスを作成できます。

http://msdn.microsoft.com/en-us/library/cc668224.aspx

C)MVCアクションでのみこれを実行する場合は、gordatronの応答に従ってActionFilterAttributeを作成できます。

于 2012-05-02T12:17:23.087 に答える
1

カスタムフィルターを作成しようとしていると思います。しばらく経ちましたが、メモリからは次のようになると思います。

public class Dependencyon : ActionFilterAttribute {

    string field;

    public Dependencyon (string field){
        this.field = field;
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //check whether field is populated and redirect if not?    
    }
}

これがActionFiltersのスターターです:

http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/understanding-action-filters-cs

(これらのコンストラクターパラメーターの詳細を思い出せないので、かなり離れている可能性があります。申し訳ありませんが、試してみるのにそれほど時間はかからないと思います)

于 2012-05-02T12:04:06.450 に答える