私はASP.NET MVC 4
最新のものを使用してい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);
}
何も選択されていないときに必要なメッセージを表示するにはどうすればよいですか?