Я использую ASP.NET MVC 4
и последние FluentValidation
.Как получить сообщение об ошибке для переключателей с использованием FluentValidation
Я изо всех сил пытаюсь проверить свои переключатели. Когда я нажимаю кнопку «Отправить», мне нужен выбор в списке переключателей.
На мой взгляд, я следующее:
@model MyProject.ViewModels.Servers.ServicesViewModel
@Html.ValidationMessageFor(x => x.ComponentTypeId)
@foreach (var componentType in Model.ComponentTypes)
{
<div>
@Html.RadioButtonFor(x => x.ComponentTypeId, componentType.Id, new { id = "emp" + componentType.Id })
@Html.Label("emp" + componentType.Id, componentType.Name)
</div>
}
Мой класс ComponentType:
public class ComponentType : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
Часть моего метода действий, где я установить свойства моей точки зрения модели:
ServicesViewModel viewModel = new ServicesViewModel
{
ComponentTypes = componentTypeRepository.FindAll(),
Domains = domainRepository.FindAll()
};
Моя модель:
[Validator(typeof(ServicesViewModelValidator))]
public class ServicesViewModel
{
public int ComponentTypeId { get; set; }
public IEnumerable<ComponentType> ComponentTypes { get; set; }
public int DomainId { get; set; }
public IEnumerable<Domain> Domains { get; set; }
}
Мой валидатор класс:
public class ServicesViewModelValidator : AbstractValidator<ServicesViewModel>
{
public ServicesViewModelValidator()
{
RuleFor(x => x.ComponentTypeId)
.NotNull()
.WithMessage("Required");
RuleFor(x => x.DomainId)
.NotNull()
.WithMessage("Required");
}
}
Мой метод HTTP Post действия:
[HttpPost]
public ActionResult Services(ServicesViewModel viewModel)
{
Check.Argument.IsNotNull(viewModel, "viewModel");
if (!ModelState.IsValid)
{
viewModel.ComponentTypes = componentTypeRepository.FindAll();
viewModel.Domains = domainRepository.FindAll();
return View(viewModel);
}
return View(viewModel);
}
Как я могу получить его, чтобы показать мое нужное сообщение, когда не выбрано ничего?