我遇到一个问题,我有一个带验证的模型,需要在不同的视图上显示某些错误消息。目前,我的模型中的所有视图都出现验证错误。
我猜测有一种方法可以根据显示的视图设置单独的验证消息吗?
我的模型如下:
[Required(ErrorMessage = "Confirm name of item")]
public string ItemName { get; set; }
[Required(ErrorMessage = "Confirm Number of items")]
public int NumberOfItems { get; set; }
查看:
@using (Html.BeginForm())
{
@Html.ValidationSummary()
<table>
<tr>
<td>Name:</td> <td>@Html.TextBox("ItemsName")</td>
</tr>
<tr>
<td>Number:</td> <td>@Html.TextBox("NumberOfItems")</td>
</tr>
</table>
我只需要在另一个只有项目名称的视图中显示一条错误消息....
提前致谢
答案 0 :(得分:1)
建议的方法是为每个视图设置一个模型,因为每个视图都有不同的验证要求。
数据注释验证静态编译到模型中,无法在运行时更改。这就是为什么每个视图都需要一个单独的模型。
您可以通过使用通用视图模型,然后为每个视图使用单独的元数据模型来解决这个问题。这些通常被称为“伙伴类”。
这里描述了这些:
答案 1 :(得分:1)
为每个页面创建一个单独的ViewModel。
您不希望将整个模型(很可能通过ORM映射到数据库表)发送到您的View。但是为每个页面创建ViewModel,允许将来查看特定属性和变换(如日期,货币,计算等)。