Hеlloevеrybody!我有一個關於MVC驗證的問題。哪裏寫輸入驗證更好 - 消費者或模型?在一些着名的框架文檔中,他們寫的是在控制器中完成,而其他人則在模型中完成。請,如果可以的話,給出合理的意見。謝謝。
Q
MVC - 驗證
0
A
回答
1
經過驗證駐留在控制器中,明確允許您使驗證更加靈活。但是,它會讓控制器變得混亂,並降低代碼的可讀性和可維護性。
如果您只考慮這兩個選項,在模型中進行驗證似乎更合適。但是,數據註釋可能無法提供足夠的驗證靈活性,因爲您可能需要。
我建議你看看Fluent Validation project,它完全分離驗證,但很容易將它集成到你的視圖模型中。代碼
例如,你不得不用它來寫:
[Validator(typeof(PersonValidator))]
public class Person {
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Age { get; set; }
}
public class PersonValidator : AbstractValidator<Person> {
public PersonValidator() {
RuleFor(x => x.Id).NotNull();
RuleFor(x => x.Name).Length(0, 10);
RuleFor(x => x.Email).EmailAddress();
RuleFor(x => x.Age).InclusiveBetween(18, 60);
}
}
1
我會說模型應該負責決定它是否處於有效狀態而不是控制器。因此,我會說驗證代碼應該駐留在模型而不是控制器中。
+0
謝謝。我也喜歡模特。 – user997379 2012-01-08 20:24:18
+0
@ user997379很高興我能幫上忙,記住儘管每種情況都可能有所不同,所以沒有硬性規定讓每個人都遵循,你只需根據你所處的情況使用你的最佳判斷。 – 2012-01-08 20:29:11
相關問題
- 1. 驗證在MVC
- 2. ASP.NET MVC驗證
- 3. Spring MVC驗證
- 4. MVC jQuery驗證
- 5. MVC 4驗證
- 6. 驗證MVC
- 7. MVC 2.0驗證
- 8. 驗證在MVC
- 9. ASP MVC驗證
- 10. MVC Autocomplete驗證
- 11. ASP.NET MVC驗證
- 12. ASP.NET MVC驗證
- 13. 驗證在ASP.NET MVC 4 - 驗證
- 14. MVC驗證:在哪裏驗證?
- 15. Aadhar使用dataAnnotation驗證mvc驗證
- 16. ASP.NET MVC驗證架構DB驗證值
- 17. MVC DataAnnotations URL驗證
- 18. ASP MVC驗證dropdownbox
- 19. MVC部分驗證
- 20. MVC驗證獨特
- 21. MVC窗體驗證
- 22. asp.net mvc DataAnnotation驗證
- 23. Asp.Net MVC 2驗證
- 24. Spring MVC:@RequestParam驗證
- 25. Knockout + mvc 3 +驗證
- 26. Spring MVC Bean驗證
- 27. MVC驗證數據
- 28. ASP.NET MVC 3驗證
- 29. asp.net mvc xval驗證
- 30. MVC:用戶驗證
是的,你說得對,謝謝。對不起。 – user997379 2012-01-08 20:23:20