我甲肝視圖模型爲什麼我的模型在調用我的控制器操作時未被驗證數據註釋?
public class MyViewModel
{
[RegularExpression(@"^([0-9a-zA-Z]+([-._])?)?[0-9a-zA-Z]+(\2?[0-9a-zA-Z]+)*$")]
public string UserName { get; set; }
}
我的我的控制器內的行動:
[HttpPost]
public ActionResult Edit(MyViewModel model, string button)
我的單元測試,測試所解釋here
如果我測試類似的模型數據annotaion驗證這個與空間名稱(稱爲「羅伯特約翰遜」)的正則表達式,它不匹配。 如果我在單元測試中使用相同的輸入,則測試通過時會出現錯誤(預期行爲)
但是當我調用動作時,動作通常接受數據。如果我調用ModelState.IsValid,則返回「false」。
據我所知,如果模型驗證失敗,我的行爲不應該被調用。我如何確保這種行爲?
只有在客戶端驗證處於活動狀態並且數據無效時纔會調用它。否則,您的操作將正常發送數據以驗證服務器端。 –
明天我會研究一下,並告訴你這是否有效。 TKS! – JSBach
請注意,無論數據是否有效,您的操作都會在某個時刻被調用。請記住,客戶端驗證基本上是出於可用性原因。驗證應該在服務器上發生。客戶端驗證是可選的;服務器端不是。 –