MVC模型,如何在不使用Required或Compare属性的情况下将错误消息放入模型中?

时间:2014-11-21 05:21:53

标签: c# .net asp.net-mvc asp.net-mvc-5

我的问题可能看起来很奇怪,但我真的想问一下如何设置一条错误消息,该消息将在Action中通过某些自定义条件验证显示?

我无法使用[Required] or [Compare]修饰字段,因为我会在操作中执行一些条件验证,并会向ModelState添加错误消息

我尝试了以下代码,但是在View中它显示了我在Action中添加的两个错误消息,默认情况下显示的第二个可能是我没有在任何地方声明的。您能否指导我如何编辑此默认错误消息。

if (String.IsNullOrEmpty(model.ApplicantDetails.PartnerDOB.ToString()))
{
  ModelState.AddModelError("ApplicantDetails.PartnerDOB", "Partner DOB is required");
}

在视图中我只有:

@Html.ValidationSummary();

不显示包含字段的错误消息。

在视图中,它显示两条消息:

  

需要合作伙伴DOB

     

字段PartnerGender必须是字符串或数组类型,最大长度为“1”。

编辑:

 public partial class App_Step2
{
    public int LeadSequence { get; set; }
    public string Title { get; set; }
    public string GivenName { get; set; }
    public string Surname { get; set; }
    public Nullable<System.DateTime> DOB { get; set; }
    public string Gender { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string Suburb { get; set; }
    public string State { get; set; }
    public string Postcode { get; set; }
    public Nullable<bool> IsPostal { get; set; }
    public string PostalAddress1 { get; set; }
    public string PostalAddress2 { get; set; }
    public string Postalsuburb { get; set; }
    public string PostalState { get; set; }
    public string PostalCode { get; set; }
    public string WorkPhone { get; set; }
    public string HomePhone { get; set; }
    public string Mobile { get; set; }
    public string Email { get; set; }
    public Nullable<bool> ContinuousCover { get; set; }
    public string PartnerTitle { get; set; }
    public string PartnerName { get; set; }
    public string PartnerSurname { get; set; }
    public Nullable<System.DateTime> PartnerDOB { get; set; }
    public string PartnerGender { get; set; }
    public Nullable<bool> PartnerContinuousCover { get; set; }
    public Nullable<bool> Conditions { get; set; }
    public string ConditionsText { get; set; }
    public Nullable<System.DateTime> Insertedon { get; set; }
    public Nullable<System.DateTime> Modifiedon { get; set; }
}

0 个答案:

没有答案