私はViewModelを持っています。このMVC3同じViewModelが2つのケースで使用され、1つのケースで必須属性がある場合
public class ViewModel
{
public int Id { get; set; }
public int? Value { get; set; }
}
のようなものは、私は、既存のviewmodelsのテーブルがあり、その下に私はあなたがDBからフェッチされ、既存のviewmodelsのための新しいViewModelに
を追加することができ、フォームを持っている私は何の検証をしたいんValueプロパティですが、新しいViewModelを追加する場合には、必要な検証が必要です。実際のモデルはこのモデルよりも複雑なので、両方のモデルで同じモデルを使用したいと思います。可能ですか?
編集:これは
public class AddNewViewModel : ViewModel
{
public new int Value { get; set; }
}
を働くことはnew
またはvirtual/override
と理由を使用することをお勧めしますか?
virtualまたはoverrideの代わりにnewキーワードを使用することはできますが、この場合は多型性はないと思います。そのため、AddNewViewModelをViewModelとしてキャストした場合、AddNewViewModelのValueは、新しくキャストされたViewModelに値を設定しません。 – danludwig
これは問題ではありません、私はViewModelのcollecton、親ViewModelの独自のプロパティにAddNewViewModelを入れていません..新しいキーワードで私のソリューションは、オーバーライドとolivehourよりも良い場合は質問 – Anders
私は新しいと思うが、しかし、私は確信していないので、これを尋ねるあなたの質問を変更しました。私はそれが匂いがするので、私は新しいを避けようとしますが、それはちょうど私の意見であり、必ずしも "正しい"とは限りません。 – danludwig