2014-04-06 15 views
5

Ich habe ein Formular, das von ASP.NET generiert wird. Ich habe einige Pflichtfelder, und ich verwende die [Required] dataAnnotation dafür. Allerdings sind die Elemente, die nicht die [Required] DataAnnotation haben, auch gemäß meiner Webseite erforderlich. Diese sind überhaupt nicht erforderlich, aber ich kann das Formular nicht senden, wenn sie leer sind.ASP.NET MVC Razor - Alle Formularfelder sind erforderlich?

Ich habe Gerüst verwendet, um die Seiten zu erstellen, jquery Validator wird (standardmäßig) für die Validierung verwendet.

Modellklasse (einige Felder aus Gründen der Übersichtlichkeit weggelassen)

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; } 
} 

Der Code, der die Formularfelder in de .cshtml Datei erstellt:

<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> 

Das erforderliche Feld zeigt korrekt die Fehlermeldung wie definiert (also liest es die Anmerkungen). Das Feld Nicht erforderlich zeigt stattdessen eine allgemeine Fehlermeldung an ("Das Feld Alternativer Preis ist erforderlich.").

Ich habe ziemlich viel gesucht, aber überall heißt es, wenn die [Required] DataAnnotation nicht da ist, wird es in dem Formular nicht benötigt.

Antwort

11

Lassen Sie die nicht erforderlichen Felder als NULL-Werte zu.

+0

Ah natürlich, danke! Ich kann die Antwort noch nicht akzeptieren, aber ich werde es tun, sobald ich kann. – Chirimorin

2

Ich hatte das gleiche Problem. Ich musste in mein Modell gehen und setzen? markiert in den int-Feldern, um sie zu null zu machen. Die Felder, die als Zeichenfolge festgelegt wurden, waren in Ordnung, es waren nur die int-Felder, die das Problem verursachten.