我有与BLL模型密切相关的ViewModel。所以现在我有:漫步,为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>
现在我想能够使用视图模型也显示其他数据,所以我想做到这一点:
public class PanelViewModel
{
[Required]
public string LeftSideOfPanel { get; set; }
public int RightSideOfPanel { 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.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,可以在模型中不同。我知道动态添加属性是不可能的,那么对于这个问题最好的解决方法是什么?