2013-07-07 19 views
10

ben dize için metin kutusu ile html formunu tanımlayan jilet dosyası var:MVC değil doğrulamak boş dize

@using (Html.BeginForm()) { 
     @Html.ValidationSummary(true) 
     <fieldset> 
     <legend>Product</legend> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Name) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Name) 
      @Html.ValidationMessageFor(model => model.Name) 
     </div> 
     <p> 
      <input type="submit" value="Create" /> 
     </p> 
     </fieldset> 
    } 

sorun şu ki, bu alanı (model.name), null olmamaya istiyorum ama jilet doğrulama dizesi boş olmasına izin verir, boş dizge eklediğimde hata verir. Herhangi bir öneri, bu dizgeyi artık boş olmamayı nasıl doğrulayacak?

cevap

5

senin ViewModel neyi benziyor çözmek mümkün olacak?

Sen ViewModel sizin Name özelliğine bir DataAnnotation özelliğini ekleyebilirsiniz:

public class MyViewModel 
{ 
    [Required(ErrorMessage="This field can not be empty.")] 
    public string Name { get; set; } 
} 

Ardından, denetleyici size yayınlanmadan modelin geçerli olup olmadığını kontrol edebilirsiniz.

public ActionResult MyAction(ViewModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     //ok 
    } 
    else 
    { 
     //not ok 
    } 
} 
İlgili konular