如何进行客户端验证以验证所选项目?.Net MVC validate Selected Item
我在.Net MVC3剃须刀DropDownList
与用户角色信息。角色可以是SuperAdmin(RoleId=1)
,Operator(RoleId=2)
和Viewer(RoleId=3)
。
现在我想贬低Operator
。如何做客户端验证,以便当用户编辑他的用户信息时,如果角色是Operator
,页面将显示验证错误?
这是的usermodel:
// User Role Id
public int RoleId { get; set; }
/// Supported user roles
public IEnumerable<SelectListItem> SupportedRoles { get; set; }
查看:
Html.DropDownListFor(m => m.RoleId, Model.SupportedRoles)
预期的行为是,对于Operator
角色的用户,当他编辑他的用户信息,不能救他的变化除非他将他的角色从Operator
更改为其他角色。
我不想从SupportedRoles
删除Operator
为Operator
用户,因为如果我们这样做,那么当Operator
用户更新等领域,但不更新的作用,很可能是他的角色将被更改为默认的角色,用户不知道这一点。
我从MVC Model validate Selected Item阅读答案。 RangeAttribute
对我的情况不起作用,因为RoleId
对于Operator
位于其他RoleIds中间。
考虑使用[万无一失(http://foolproof.codeplex.com/) '[NotEqualTo]'指向类似的验证属性(或者你可以自己编写实现'IClientValidatable'的属性)。如果用户还没有分配该角色,则还应该生成'SelectList'来排除'Operator'。 –