gpt4 book ai didi

c# .net MVC4 模型来表示表格或表单

转载 作者:行者123 更新时间:2023-11-30 17:08:17 25 4
gpt4 key购买 nike

您好,我对 mvc 4 中的模型有点困惑,我想有人可以为我指明正确的方向。将不胜感激。

例如,如果我有一个包含以下字段的表

        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 5)]         
public string UserName { get; set; }

[Required(ErrorMessage="Email Address is Required")]
[StringLength(15, ErrorMessage = "Email Address must be between {0} and {1} in size",MinimumLength = 5 )]
[DataType(DataType.EmailAddress)]
[Display(Name="Email")]
public string Email { get; set; }

[MaxLength(25)]
[Display(Name="Mobile Telephone Number")]
public string Mobile {get;set;}

[MaxLength(500)]
[Display(Name="Headline")]
public string Headline {get;set;}

[Required]
[StringLength(200)]
[Display(Name = "First Name")]
public string FirstName {get;set;}

[Required]
[StringLength(200)]
[Display(Name="Surname")]
public string Surname { get; set;}

public virtual int? DayOfBirthId { get; set; }
public virtual DayOfBirth DayOfBirth { get; set; }
public virtual int? MonthOfBirthId { get; set; }
public virtual MonthOfBirth MonthOfBirth { get; set; }
public virtual int? YearOfBirthId { get; set; }
public virtual YearOfBirth YearOfBirth{get;set;}

这是我在数据库中的用户资料表。但是我想要一个用户注册到网站的表格。当他们第一次注册时,我不需要电话等所有详细信息,我真正需要的只是用户名、电子邮件地址和密码。我要为此创建另一个模型吗?或者我有一个模型并在 Controller 上将字段设置为注册时不需要的空字符串或空字符串。我也有验证,所以这将设置为尚未在表单上输入的数据。

我的问题最终是所有表单都应该代表模型——是否应该重新设计数据库以满足这一要求。或者 Controller 是否应该设置不需要的值。或者是否应该有另一个模型来表示要创建的映射到该表的表单。

我对此有点困惑,非常感谢任何人的澄清。

最佳答案

看起来您正在将模型直接映射到 View ,这很好,但通常是 ViewModels 的概念用于此目的。

Viewmodels专门针对将在其中使用它们的 View 量身定制,并且仅包含 View 所需的属性。然后映射 ViewModels

  1. 建立持久化用户更改的模型
  2. 来自显示用户持久化数据的模型

您可以手动滚动两个对象之间的映射或使用类似 AutoMapper 的工具或 EmitMapper .

关于c# .net MVC4 模型来表示表格或表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13891512/

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