gpt4 book ai didi

model-view-controller - 验证 MVC 中的复杂类

转载 作者:行者123 更新时间:2023-12-04 05:54:18 25 4
gpt4 key购买 nike

考虑以下代码:

public class AccountNumber
{
[AccountNumber] //This validator confirms the format of the account number
public string Value {get; set;}

public int Format { get; set;}

public string ToString()
{
return Value + " is format " + Format;
}
}

public class MyViewModel
{
public MyViewModel()
{
SourceAccount = new AccountNumber();
DestinationAccount= new AccountNumber();
}

[Required]
AccountNumber SourceAccount {get; set;}

AccountNumber DestinationAccount {get; set;}
}

然后,在我看来:
@Html.EditorFor(model => model.SourceAccount.Value)
@Html.EditorFor(model => model.DestinationAccount.Value)

基本上,我想说的是用户 必须输入一个源帐户,然后他们 可选 输入目标帐户。但是,如果他们确实输入了目标帐户,则 必须符合一定的格式。

上面代码的问题在于 SourceAccount 上所需的验证器将始终返回有效,因为 SourceAccount 永远不会为空。实现我想要实现的目标的好方法是什么?

请注意,现实生活中 Value 的 setter比显示的更复杂,因为它以规范格式重新格式化帐号。

编辑 请注意,我们必须使用内置的 MVC 验证,因为这是项目的其余部分当前正在使用的。

最佳答案

Extending the Model Binder for Enhanced Validation .
这与内置的 MVC 验证完全兼容。

您当然可以通过使用您自己的界面进行验证来自定义此解决方案。

关于model-view-controller - 验证 MVC 中的复杂类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9704488/

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