Подтвердить что ты не робот

ValidationMessageДля отображения ошибок

У меня есть этот класс:

public class Product
{
    [Required(ErrorMessage = "empty name")]
    public string Name { get; set; }

    [Required(ErrorMessage = "empty description")]
    public string Description { get; set; }
}

и у меня есть ResponseProduct, который показан в поле зрения:

public class ProductInsertVM
{
    public string Message = "Success";
    public Product Product;
}

На мой взгляд, у меня есть следующее:

@using (Html.BeginForm()){  
    @Html.ValidationSummary(false)

    @Html.TextBoxFor(m => m.Product.Description)
    @Html.ValidationMessageFor(m => m.Product.Description)
}

Я хочу знать, почему ValidationMessageFor doest'n работает?!! работает только ValidationSummary. Если я отвечаю с Продуктом, значит он работает.

4b9b3361

Ответ 1

Приведенный вами код должен работать нормально, если выполняются следующие условия.

1) У вас есть ссылка на сценарии проверки jQuery в вашем представлении

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

2) В форме submit вы вызываете свойство ModelState.IsValid и, следовательно, проверяете модель, переданную методу действий

[HttpPost]
public ActionResult CarList(CarList model)
{
    if (ModelState.IsValid)
    {
       //Save or whatever you want to do 
    }
    return View(model);
}