3

我有一个 Person 类。一个人有名字和称呼。Salutation 是数据库中的另一个表(我继承了数据库)。

在 UI 中,我希望称呼是必填字段。这是我的模型的样子:

public partial class Person
    {
        public virtual string Id { get; set; }

        public virtual Nullable<long> SalutationId { get; set; }

        [Required]
        public virtual Salutation Salutation { get; set; }

        public virtual string FirstName { get; set; }

        [DisplayName("Last Name")]
        public virtual string LastName { get; set; }
    }

    public partial class Salutation
    {
        public virtual long Id { get; set; }

        public virtual string SalutationName { get; set; }

        public virtual string Status { get; set; }

        public virtual ICollection<Person> People { get; set; }
    }

它是否正确?即使我输入了称呼,我仍然收到一个验证错误,上面写着“称呼是必填字段”。

所有这一切都开始于一个小时前,直到一切正常。

如果我有时间思考并且不赶最后期限,我会自己解决这个问题。奇怪的是压力对你的思想有什么影响。

4

2 回答 2

3

简短回答:问题出在您为称呼进行所需验证的地方。

您的称呼验证属性应该放在Salutation model.

编辑:除此之外,您的模型public virtual还在每个属性上使用访问修饰符。virtual如果我的模型不需要,我会删除。

于 2012-12-17T15:24:45.957 回答
2

@ElYusubov 是正确的,但也:Person.SalutationId不应该Nullable

public partial class Person
{
  public virtual long SalutationId { get; set; }
  ...

这意味着每个Person对象都必须有一个有效的SalutationId,这又意味着Salutation数据库中的相关记录。

于 2012-12-17T15:26:36.633 回答