Ann*_* L. 8 interface partial-views data-annotations asp.net-mvc-3
我有一个案例,复杂的局部视图需要根据部分视图的使用位置进行不同的字段验证.
我认为我可以通过使局部视图将接口作为模型类型并基于接口实现两个不同的ViewModel来解决这个问题.两个ViewModel中的数据注释会有所不同.然后,我将向部分视图提供正确的ViewModel的实例.
但我发现,唯一被识别的注释是界面本身的注释.实现ViewModel类的接口上的DA被忽略,即使这些是作为模型传递的对象.所以我的计划不起作用.
有没有解决的办法?更好的方法?如果可以避免,我宁愿不将局部视图拆分为单独的视图.
ETA:这是部分视图的缩写版本,如下所示:
@model IPerson
@Html.ValidationSummary(false)
<fieldset>
<table class="editForm">
<tr>
<td class="editor-label">
@Html.LabelFor(model => model.FirstName)
</td>
<td class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</td>
<td class="editor-label">
@Html.LabelFor(model => model.LastName)
</td>
<td class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</td>
</tr>
</table>
<fieldset>
Run Code Online (Sandbox Code Playgroud)
真正的局部视图很长,有很多@if语句管理可选部分的渲染(或不渲染),但它没有做任何棘手的事情.