2014-04-06 23 views
5

Ho un modulo generato da ASP.NET. Ho alcuni campi obbligatori e sto usando il [Required] dataAnnotation per quello. Tuttavia, gli elementi che non dispongono di [Required] DataAnnotation sono inoltre richiesti in base alla mia pagina Web. Questi non sono affatto necessari, ma non posso inviare il modulo se sono vuoti.Rasoio MVC ASP.NET - Tutti i campi modulo sono obbligatori?

Ho utilizzato il ponteggio per creare le pagine, il validatore jQuery è utilizzato (per impostazione predefinita) per la convalida.

classe del modello (alcuni campi sono stati omessi per chiarezza)

public class Room 
{ 
    [Key] 
    public int ID { get; set; } 


    [Required(ErrorMessage = "Please enter the minimum (default) price for this room.")] 
    [DataType(DataType.Currency)] 
    [Display(Name = "Minimum price")] 
    public decimal MinPrice { get; set; } 

    [Display(Name = "Alternative price")] 
    [DataType(DataType.Currency)] 
    public decimal AltPrice { get; set; } 
} 

Il codice che crea i campi del modulo di de lima .cshtml:

<div class="form-group"> 
     @Html.LabelFor(model => model.MinPrice, new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.MinPrice) 
      @Html.ValidationMessageFor(model => model.MinPrice) 
     </div> 
    </div> 

    <div class="form-group"> 
     @Html.LabelFor(model => model.AltPrice, new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.AltPrice) 
      @Html.ValidationMessageFor(model => model.AltPrice) 
     </div> 
    </div> 

Il campo obbligatorio visualizza correttamente il messaggio di errore come definito (quindi legge le annotazioni). Il campo non obbligatorio visualizza invece un messaggio di errore generico ("Il campo del prezzo alternativo è richiesto.").

Ho cercato un bel po ', ma ovunque si dice che se [Required] DataAnnotation non è presente, non sarà richiesto nel modulo.

risposta

11

Rendere i campi non obbligatori nullable.

+0

Ah, naturalmente, grazie! Non posso ancora accettare la risposta, ma lo farò al più presto. – Chirimorin

2

Avevo lo stesso problema. Dovevo andare nel mio modello e mettere? segna nei campi int per renderli nulli. I campi impostati come stringa andavano bene erano solo i campi int che causavano il problema.