0

我有一个问题,我有一个带有验证的模型,并且需要某些错误消息才能在不同的视图上显示。目前,我的模型中所有内容的所有视图都出现验证错误。

我猜有一种方法可以根据显示的视图设置单独的验证消息?

我的模型如下:

[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>

我只需要在我拥有的另一个视图上显示一条错误消息,该视图只有项目名称....

提前致谢

4

2 回答 2

1

推荐的方法是为每个视图设置一个模型,因为每个视图都有不同的验证要求。

数据注释验证静态编译到您的模型中,并且不能在运行时更改。这就是为什么您需要为每个视图使用单独的模型。

您可以通过拥有一个通用视图模型,然后为每个视图使用单独的元数据模型来解决这个问题。这些通常被称为“伙伴班”。

这些在此处进行了描述:

http://www.asp.net/mvc/tutorials/older-versions/models-(data)/validation-with-the-data-annotation-validators-cs

于 2013-08-05T14:39:52.907 回答
1

为每个页面创建一个单独的 ViewModel。

您不希望将整个模型(很可能通过 ORM 映射到数据库表)发送到您的视图。但是为每个页面创建 ViewModel,它允许查看特定的属性和未来的转换(如日期、货币、计算等)。

于 2013-08-05T14:40:48.887 回答