gpt4 book ai didi

c# - 如何使用 ASP.Net MVC 根据需要动态设置字段?

转载 作者:太空狗 更新时间:2023-10-30 01:18:00 24 4
gpt4 key购买 nike

我有几个字段只需要根据其他字段中的选择显示。当显示这些字段时,它们也是必需的。首先,我试图只隐藏 View 中的字段。但是,该字段在 View 模型中设置为必需,因此 ModelState 返回无效,因为该字段是必需的。现在,我正在创建几个不同的 View 模型来处理所有不同的可能性,但这变得很麻烦,因为 View 中的表单有几十种变化。有没有更好的方法来获得我需要的结果?例如,我可以只使用一个包含所有字段的模型,然后将它们隐藏在 View 中,但只在需要显示时才将它们设为必需吗?也许我可以在 Controller 的 ActionResult 中动态添加数据注释?

我在这里发现了另一个可能是同一个问题的帖子:ASP.NET MVC 3: programmatically add DataAnnotation (RequiredAttribute) to view model

最佳答案

您可以实现IValidatableObject。这样您就可以对模型属性进行条件验证。

 public class MyViewModel : IValidatableObject
{
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Condition here)
{
yield return new ValidationResult("Validation error");
}
if (Other Condition here)
{
yield return new ValidationResult("Other Validation error");
}
}
}

另一个选项是 MVC Foolproof Validation .

关于c# - 如何使用 ASP.Net MVC 根据需要动态设置字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29196287/

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