2014-09-10 47 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