2010-11-06 66 views
2

我很好奇我如何動態設置模型的驗證屬性。例如,我經常有視圖,當用戶在某個角色時應該需要某些字段,但當用戶在另一個角色時不需要。我希望相應地設置服務器端和客戶端驗證。動態設置必填字段

回答

4

對於服務器端不會有這樣的工作嗎?

public class RequiredForRoleAttribute : ValidationAttribute 
{ 
    public string Role { get; set; } 

    public override bool IsValid(object value) 
    { 
     return !Roles.IsUserInRole(Role) || (value != null && !string.IsNullOrEmpty((string)value)); 
    } 
} 

而且一個示例用法是;

 [RequiredForRoleAttribute(Role = "Admins", ErrorMessage = "Phone number is required for members of the admin role.")] 
    public string PhoneNumber { get; set; } 

現在對於物聯網的客戶端,

你將不得不註冊它作爲在以下鏈接描述遠程確認; http://forums.asp.net/t/1559594.aspx/1

希望你得到它,

克里斯