我有單獨的模型和視圖模型類。其中viewmodel類只進行UI級別驗證(請參閱:Validation: Model or ViewModel)。驗證Model和ViewModel的最佳實踐
我可以在控制器中驗證模型(vewmodel)是否有效。
問: 如何驗證模型(帶有數據註釋的主要實體)。
我沒有開發使用模型對象的視圖模型。只需複製屬性並添加該特定視圖中可能需要的所有屬性即可。
//Model Class
public class User
{
[Required]
public string Email {get; set;}
[Required]
public DateTime Created {get; set;}
}
//ViewModel Class
public class UserViewModel
{
[Required]
public string Email {get; set;}
[Required]
public string LivesIn {get; set;}
}
//Post action
public ActionResult(UserViewModel uvm)
{
if(ModelState.IsValid)
//means user entered data correctly and is validated
User u = new User() {Email = uvm.Email, Created = DateTime.Now};
//How do I validate "u"?
return View();
}
應該做這樣的事情:
var results = new List<ValidationResult>();
var context = new ValidationContext(u, null, null);
var r = Validator.TryValidateObject(u, context, results);
我在想什麼基類是添加(業務實體)此驗證的技術,並驗證它,當我從映射視圖模型類到商業實體。
有什麼建議嗎?
珠三角@Serghei其實我想知道我該怎麼辦驗證模型類(不綁定查看)。保持我的視圖具有來自不同模型類(在ViewModel類中)的屬性,以滿足特定視圖的所有需求。 – Yahya
@Yahya你能舉一個例子嗎?指出您應該在哪裏以及如何進行驗證會更容易。 – David
prd我已經在原始問題中爲您添加了示例代碼。我希望現在有道理。 – Yahya