2012-05-02 5 views
1

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

たとえば、securitynumberプロパティがemployeenameプロパティに依存する場合。 employeenameを除くながら、私は書面で助けを必要とし、例えば

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

と取得したいのカスタム属性を使用して「securitynumberはemployeenameに依存するため、employeenameを除外することはできません」という検証メッセージ

を表示したいです私が必要としていた "Dependencyon"の価値。

+0

何を試しましたか?カスタム属性を書く方法を知っていますか?そうでない場合は、カスタム属性の作成方法に関するチュートリアルを参照してください。 –

+0

私は、ValidationAttributeクラスから派生したクラスを作成しようとしています。また、IsValidメソッドをオーバーライドしようとしましたが、成功しませんでした。私はMVCを初めて使用しています。 – user184842

+0

何が成功していないのですか? CustomValidationAttributeのバリデータを作成してみてください。それはあなたにとって最も簡単かもしれません。 –

答えて

1

は、私はそのはしばらくして..あなたは、カスタムフィルタを作成するために探していると思いますが、メモリから、私はそれが何かのようになると思います。

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

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のスターターです

(私はこれらのコンストラクタのparamsの詳細を思い出すことができないので、私は道オフかもしれ...申し訳ありませんが、私はそれを試してみる時間がかかり文句を言わないと思います)

+0

ありがとうございました。私はカスタム属性を書いています。 – user184842

+0

@ user184842この種類の属性。ここに投稿された回答とは異なる何かをした場合は、あなたが行ったことを投稿し、それを回答としてマークします。 – gordatron

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を作成することができます。