gpt4 book ai didi

asp.net-mvc-3 - 如何在MVC3中对同一对象的实例显示不同的Required消息?

转载 作者:行者123 更新时间:2023-12-04 02:59:48 24 4
gpt4 key购买 nike

我有一个Razor MVC3项目,该项目具有两种形式的用户记录,一个用于关键联系人,一个用于备用联系人。例如;

public class User
{
[Required(ErrorMessage = "First name is required")]
public string FirstName { get; set; }
}

验证一切正常,除了用户无法填写字段的小问题之外,它说“必填”,但我想指出用户姓名中缺少一个字段的问题。例如“需要备份联系人名字”或“需要关键联系人名字”。

理想情况下,我想在类中使用[Required]注释,因为它在其他地方使用。

这似乎是可能遗漏且难以实现的小案例之一,但请证明我错了。

瑞安

最佳答案

实现此目的的一种方法是为此屏幕使用单独的 View 模型,而不是使用包含所有错误消息的单个用户模型。在新的 View 模型中,您可能具有一个BackupContactFirstName属性,KeyContactFirstName属性等,每个属性都有其单独的错误消息。 (或者,该 View 模型可以包含单独的用户模型作为属性,但是我发现Microsoft的客户端验证不适用于复杂的模型,并且更喜欢平面属性)。

您的 View 模型如下所示:

public class MySpecialScreenViewModel
{
[Required(ErrorMessage = "Backup contact first name is required")]
public string BackupContactFirstName { get; set; }


[Required(ErrorMessage = "Key contact first name is required")]
public string KeyContactFirstName { get; set; }
}

然后将您的 View 模型传递给这样的 View :
@model MySpecialScreenViewModel
...

您的后 Controller 操作将从 View 模型收集属性(或将它们映射到单独的用户模型),并将它们传递给适当的数据处理方法。

关于asp.net-mvc-3 - 如何在MVC3中对同一对象的实例显示不同的Required消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5859658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com