gpt4 book ai didi

asp.net-mvc-2 - 如何仅使用 DataAnnotations 验证 Viewmodel 中的部分字段?

转载 作者:行者123 更新时间:2023-12-02 20:01:05 26 4
gpt4 key购买 nike

我有一个如下所示的 View 模型:

public class Viewmodel
{

public int Type {get;set} // 0 if typeA, 1 if typeB

[Required]
public string AProperty1 {get;set}

[Required]
public string AProperty1 {get;set}

...

[Required]
public string BProperty1 {get;set}

[Required]
public string BProperty1 {get;set}
}

有 2 个表单可以获取此 View 模型,在 FormA 中用户输入 AProperty1、AProperty2 等,BProperty-s 返回 null。与FormB 相同。表单类型(FormA 或 FormB)被分配给 ViewModel.type 字段。

所以问题是,在我的 Controller 中,我检查 ModelState.IsValid 属性,它在两种情况下都为 false,因为一半字段始终为空。

一种可能的解决方案是以某种方式覆盖 ModelView 中的 ModelState.IsValid 属性,以便我可以将类型传递给它。但据我所知,没有办法。

还有其他解决办法吗? (它最好应该能够与客户端验证一起使用)

最佳答案

如果确实需要为两个不同的 View 仅使用一个 ViewModel,那么“部分验证”可能是您的解决方案。查看此博客:

http://blog.stevensanderson.com/2010/02/19/partial-validation-in-aspnet-mvc-2/

关于asp.net-mvc-2 - 如何仅使用 DataAnnotations 验证 Viewmodel 中的部分字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4343940/

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