在我的web api 2 Controller中,我有一个包含以下逻辑的Create方法:
if (((assignment.type).ToLower() != "individual" && (assignment.type).ToLower() != "staff")) {
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The Assignment Type
must be either 'individual' or 'staff'");
}
我正在使用模型状态验证。是否可以为属性分配正则表达式以消除在控制器中进行检查的需要?如果是这样的话,只有当api的用户传递“个人”或“职员”的确切字符串(不区分大小写)时,reg ex看起来才会返回有效的内容?
答案 0 :(得分:3)
感谢评论中的一些指导,我最终得到了这个,这很有效:
[RegularExpression(@"^(?i)(individual|staff)$", ErrorMessage="...")]
public string type { get; set; }
答案 1 :(得分:0)
如果你想要一个正则表达式而不是像
那样的东西new Regex(@"^(individual|staff)$", RegexOptions.IgnoreCase)
但是,我建议创建一个具有相应值的枚举,并使该枚举的模型属性。