ビューモデルを使用して、クライアント側とサーバー側の両方でフォームを検証しようとしています。Kendo Combobox を除いて、すべての検証が機能しています。モデルを複数選択にバインドしましたが、リストと選択された値を区別する方法がわかりません。
コンボボックス:
@(Html.Kendo().ComboBox()
.Name("roleRequest_UnavailableRoles")
.BindTo(new SelectList(Model.roleRequest.UnavailableRoles, "Value", "Text"))
.HtmlAttributes(new { name="addRoleName", style = "width:250px", required = true, roleValidationMessage = "foo" })
.Value(Model.roleRequest.roleName)
.DataTextField("Text")
.DataValueField("Value")
.Filter(FilterType.StartsWith)
.Placeholder("Select Role...")
.AutoBind(false)
.Suggest(true)
)
モデルを見る:
[Required]
public string roleName { get; set; }
[Required]
public string usersName { get; set; }
[Required]
public string application { get; set; }
[Required]
public string reasons { get; set; }
public virtual IEnumerable<SelectListItem> UnavailableRoles
{
get
{
var unavailableList = new List<Role>();
unavailableList = RoleHelper.GetUnavailableRoles(usersName, application);
var unavailableRolesList = (unavailableList.Distinct());
var UnavailableRoles = new List<SelectListItem>();
foreach (var role in unavailableRolesList)
{
UnavailableRoles.Add(new SelectListItem
{
Value = role.RoleID.ToString(),
Text = role.RoleName
});
}
return new SelectList(UnavailableRoles, "Value", "Text");
}
}
コントローラー: [HttpPost] public ContentResult RoleRequest(AddRoleRequestViewModel viewModel) { if (ModelState.IsValid) { return Content("1"); コンテンツを返します(""); }
上記のコードはコンパイルされますが、コンボボックスでアイテムが選択されていない場合、コントローラーが無効を返すことはできません。誰でもこれを修正する方法を説明できますか?
どんな助けでも大歓迎です。