ASP.NET MVC - 如何使用必填字段实现可选的嵌套模型?

 brucegogo03 发布于 2023-02-05 11:37

我目前正在ASP.NET MVC4应用程序中实现表单,我似乎无法找到有关输入验证的良好且可维护的解决方案.鉴于以下(简化)模型:

public class PersonalData
{
    [Required]
    public string FirstName { get; set; }

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

    [Required]
    public AddressData ResidentialAddress { get { return residentialAddress; } }
    private readonly AddressData residentialAddress = new AddressData();

    public AddressData PostalAddress { get; set; }
}

public class AddressData
{
    [Required]
    public string ZipCode { get; set; }

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

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

    [Required]
    public int HouseNumber { get; set; }
}

我认为这个模型定义本身就说明了一点:我能够将'PersonalData'类的属性声明为'Required',而且我也能够在'AddressData'模型上做同样的事情.这种方法适用于'ResidentialAddress'属性,但是使用可选的嵌套模型(例如'PostalAddress'属性中提供的模型)会变得棘手.

简单的说:

' PersonalData '模型上的所有字符串属性都是必需的;

存储在' ResidentialAddress '属性中的' AddressData '对象上的所有字符串属性都是必需的;

" 的PostalAddress "是可选的:的"所有字符串属性AddressData存储在'’-object 的PostalAddress ' -特性是必需的,如果一个’ AddressData " -instance指定给它.

"扁平化"PersonalData模型对我来说似乎不是一个理想的解决方案,特别是考虑到我们使用的是EditorTemplate.

我有什么选择?我在基础层面上做错了吗?是否有普遍支持的技术?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有