2014-04-06 35 views
5

Mam formularz generowany przez ASP.NET. Mam niektóre wymagane pola i używam do tego [Required] dataAnnotation. Jednak elementy, które nie mają [Wymagane] DataAnnotation są również wymagane zgodnie z moją stroną internetową. Nie są one wcale wymagane, ale nie mogę przesłać formularza, jeśli są puste.Razor ASP.NET MVC - Wszystkie pola formularza są wymagane?

Użyłem rusztowania, aby strony, walidator jquery jest używany (domyślnie) do sprawdzania poprawności.

klasie modelu (niektóre pola zostały pominięte dla jasności)

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

Kod, który tworzy pola formularza w De pliku .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> 

Wymagane pola poprawnie wyświetla komunikat o błędzie zgodnie z definicją (w ten sposób odczytuje adnotacje). Niezbędne pole wyświetla ogólny komunikat o błędzie ("Wymagane jest pole ceny alternatywnej").

Szukałem całkiem sporo, ale wszędzie mówi się, że jeśli [Wymagane] DataAnnotation nie ma, nie będzie wymagane w formularzu.

Odpowiedz

11

Spraw, aby niepotrzebne pola były puste.

+0

Ach, oczywiście, dzięki! Nie mogę jeszcze przyjąć odpowiedzi, ale zrobię to tak szybko, jak tylko będę mógł. – Chirimorin

2

Miałem ten sam problem. Musiałem wejść do mojego modelu i umieścić? znaki w polach int, aby były puste. Pola, które zostały ustawione jako łańcuch znaków, były w porządku, tylko pola int powodowały problem.