2014-09-10 50 views
0

在我的Web API 2控制器我有一个包含以下逻辑创建方法:的ASP.NET Web API 2模型验证与正则表达式

if (((assignment.type).ToLower() != "individual" && (assignment.type).ToLower() != "staff")) { 
    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The Assignment Type 
    must be either 'individual' or 'staff'"); 
    } 

我使用模型状态验证。是否可以将正则表达式分配给属性以消除在控制器中执行检查的需要?如果是这样,那么只有当api的用户传递了“个人”或“员工”的确切字符串(不区分大小写)时,该注册表才会返回有效吗?

回答

1

由于在评论一些指导,我结束了这个,效果很好:

[RegularExpression(@"^(?i)(individual|staff)$", ErrorMessage="...")] 
public string type { get; set; } 
0

如果你想比使用类似

new Regex(@"^(individual|staff)$", RegexOptions.IgnoreCase) 

不过,我会建议创建具有相应值的枚举,使该枚举的模型性质的正则表达式。

+0

所以属性将这个样子。任何方式使它不区分大小写? [RegularExpression(“^(individual | staff)$”] public string type {get; set;} – pgtips 2014-09-10 17:04:25

+0

看看这个答案http://stackoverflow.com/questions/4218836/regularexpressionattribute-how-to-make-it - 未区分大小写换客户端-v – 2014-09-13 11:30:55