私はViewModelがBLLモデルに密接に関連しています。だから今私が持っている:MVCのViewModelに属性を動的に割り当てるために歩き回る
public class CarViewModel
{
[Required]
public string Colour { get; set; }
public int MaxSpeed { get; set; }
}
それは、シンプルなパネルとしてページに表示されます。
<div class="card">
<div class="card-content">
<form method="post" class="col s12" id="sim_house_seeker">
<div class="row">
<div class="input-field col s6">
<i class="material-icons prefix">phone</i>
@Html.TextBoxFor(m => m.Colour)
@Html.LabelFor(m => m.Colour)
</div>
<div class="input-field col s6">
<i class="material-icons prefix">credit_card</i>
@Html.TextBoxFor(m => m.MaximalPrice)
@Html.LabelFor(m => m.MaximalPrice)
</div>
</div>
<button type="submit" class="waves-effect waves-light btn-large">Save</button>
</form>
<div class="clearBoth"></div>
</div>
今私はViewModelには、別のデータを表示行うことを使用できるようにしたいので、私なり
public class PanelViewModel
{
[Required]
public string LeftSideOfPanel { get; set; }
public int RightSideOfPanel { get; set; }
}
とのViewModel:
これを実行したいと思います210<div class="card">
<div class="card-content">
<form method="post" class="col s12" id="sim_house_seeker">
<div class="row">
<div class="input-field col s6">
<i class="material-icons prefix">phone</i>
@Html.TextBoxFor(m => m.LeftSideOfPanel)
@Html.LabelFor(m => m.LeftSideOfPanel)
</div>
<div class="input-field col s6">
<i class="material-icons prefix">credit_card</i>
@Html.TextBoxFor(m => m.RightSideOfPanel)
@Html.LabelFor(m => m.RightSideOfPanel)
</div>
</div>
<button type="submit" class="waves-effect waves-light btn-large">Save</button>
</form>
<div class="clearBoth"></div>
</div>
これは私が望む任意のモデルでそのパネルを使用することができ、ViewModelとBLLエンティティを分離します。しかし、私の問題は、ViewModelにバリデーションアトリビュートを追加することです。これはモデルによって異なる場合があります。私は属性を動的に追加することは不可能であることを知っていますので、この問題の最善の策は何ですか?