2014-04-06 35 views
5

ASP.NET tarafından oluşturulan bir form var. Bazı zorunlu alanlara sahibim ve bunun için [Required] dataAnnotation kullanıyorum. Bununla birlikte, [Gerekli] Veri Açıklaması olmayan öğeler web sayfama göre de gereklidir. Bunlar henüz gerekli değildir, ancak bunlar boşsa formu gönderemem.ASP.NET MVC Jilet - Tüm form alanları zorunludur?

Sayfaları yapmak için iskele kullandım, doğrulama için jquery validator (varsayılan olarak) kullanılır. (Bazı alanların açık olması için atlanmıştır)

Modeli sınıf

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

de .cshtml dosyasında form alanları yaratır kodu:

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

zorunlu alan doğru hata iletisi görüntüler tanımlandığı gibi (bu nedenle ek açıklamaları okur). Zorunlu olmayan alan yerine genel bir hata mesajı görüntüler ("Alternatif fiyat alanı gereklidir.").

Çok fazla arama yaptım, ancak her yerde, [Gerekli] Veri Açıklaması yoksa, formda gerekli olmayacağını söylüyor.

cevap

11

Zorunlu olmayan alanları doldurun.

+0

Elbette, teşekkürler! Cevabı henüz kabul edemem ama mümkün olan en kısa zamanda yapacağım. – Chirimorin

2

Aynı problemi yaşıyordum. Modelime girip koymak zorundaydım? int alanlarındaki işaretler boş bırakılır. Dize olarak ayarlanmış olan alanlar çok iyiydi, bu sadece soruna neden olan int alanlarıydı.