2

在 ASP.NET MVC 中,我可以执行类似的操作(参数设置为 DisplayName):

[Required(ErrorMessage="Please insert a valid {0}") ]
[DisplayName("User name")]
public string UserName { get; set; }

因此错误消息“请插入有效的 {0} ”被翻译为“请插入有效的用户名”。我可以在下面的代码中的 ASP.NET Web 窗体中的 ErrorMessage 中执行类似的操作吗?

<asp:TextBox ID="Email" Text="E-mail" runat="server" Width="300px" />

<asp:RequiredFieldValidator ID="RequiredEmailValidator" runat="server" ErrorMessage="Field {0} is required." ControlToValidate="Email" Display="Dynamic"></asp:RequiredFieldValidator>

所以错误信息“ Field {0} is required”应该翻译成“ Field E-mail is required”。

4

1 回答 1

3

RequiredFieldValidator是一个验证单个字段(ControlToValidate属性)的 ASP.NET 验证控件。这意味着您为这些验证器之一定义的消息应该只是正在验证的字段的特定消息。在这种情况下:

<asp:TextBox ID="Email" Text="E-mail" runat="server" Width="300px" />
<asp:RequiredFieldValidator ID="RequiredEmailValidator" runat="server" ErrorMessage="Field E-mail is required." ControlToValidate="Email" Display="Dynamic"></asp:RequiredFieldValidator>

<asp:TextBox ID="UserName" Text="User Name" runat="server" Width="300px" />
<asp:RequiredFieldValidator ID="RequiredEmailValidatorUN" runat="server" ErrorMessage="Field User Name is required." ControlToValidate="UserName" Display="Dynamic"></asp:RequiredFieldValidator>

按照这个逻辑,您RequiredFieldValidator需要为每个需要验证的字段创建一个实例,并且将为每个验证分别定义消息。

也可以通过 javascript 设置此消息,因为每个消息都呈RequiredFieldValidator现在页面上,因此可以进行操作。这同样适用于在代码隐藏上通过 C# 更改它。

于 2013-06-04T21:35:55.517 回答