Tôi chỉ đang học MVC và dường như không thể tìm ra cách xử lý kịch bản sau đây, tôi có một biểu mẫu có địa chỉ giao hàng và địa chỉ thanh toán. Tất cả các trường đều được yêu cầu. Ngoài ra còn có một hộp kiểm cho "Địa chỉ thanh toán giống như địa chỉ giao hàng". Vấn đề của tôi là trạng thái mô hình không bao giờ hợp lệ trừ khi cả hai địa chỉ được hoàn thành. Tôi có thể xử lý này khá dễ dàng với một số javascript mà chỉ cần thêm các giá trị từ địa chỉ vận chuyển đến các lĩnh vực địa chỉ thanh toán, nhưng nếu có một cách tốt hơn để xử lý này tôi muốn biết. Bất kỳ dòng hướng dẫn nào về cách xử lý thông thường sẽ là tuyệt vời. Cảm ơn!Làm cách nào để xử lý xác thực có điều kiện trong MVC3?
Trả lời
Có nhiều cách để xử lý việc này. Nếu bạn không sử dụng xác thực phía máy khách, thì bạn có thể chỉ cần triển khai IValidatableObject trên mô hình và ghi đè phương thức IsValid() và thực hiện một số mã để kiểm tra tính hợp lệ của mô hình.
Nếu bạn đang sử dụng xác thực phía máy khách, thì bạn cần thuộc tính tùy chỉnh hoặc sử dụng một cái gì đó như fluent validation.
Bạn có thể thực hiện điều này bằng cách tạo ra một thuộc tính xác nhận tùy chỉnh:
http://blogs.msdn.com/b/simonince/archive/2011/02/04/conditional-validation-in-asp-net-mvc-3.aspx
Các ý chính của nó là bạn tạo ra một lớp mới based off ValidationAttribute
, và IClientValidatable
, ghi đè lên và thực hiện khi cần thiết, thêm khách hàng- của bạn xác nhận phụ (bạn cần bất kỳ cách nào) và áp dụng thuộc tính cho trường tùy chọn của bạn.
Hoặc vì việc xác thực có thể phức tạp như bạn muốn, hãy áp dụng nó trên trường được chia sẻ một phần, tùy chọn được chia sẻ một phần.
Anh chàng đó cũng có alpha của thư viện mà anh ấy viết để làm cho xác thực MVC linh hoạt hơn. Đã không sử dụng nó bản thân mình, nhưng you could give it a try.
- 1. Làm cách nào để xử lý xác thực bằng HttpWebRequest.AllowAutoRedirect?
- 2. Làm cách nào để xử lý sự kiện trên QThread?
- 3. Có cách nào để có điều kiện if/else trong xml vào mùa xuân mvc3 không?
- 4. Làm thế nào để có điều kiện xử lý phép chia cho không với MySQL
- 5. Làm cách nào để thay đổi màu nền của macro có điều kiện trong nhật thực?
- 6. Cách xử lý Xác thực cơ bản HTTP trong AVURLAsset?
- 7. Cách xử lý xác thực trong ứng dụng ember.js
- 8. Làm thế nào để xử lý các trường hợp ngoại lệ xác thực yêu cầu ASP.NET MVC3 như lỗi xác thực mô hình hoặc thuộc tính
- 9. Cách xử lý sự kiện trong MVVM
- 10. Xử lý các điều kiện Race trong C#
- 11. Xác thực có điều kiện trong Mùa xuân
- 12. Có cách nào để xác định vị trí xử lý sự kiện không sử dụng trong Delphi?
- 13. Cách xử lý Xác thực cơ bản trong WebView
- 14. Làm cách nào để xử lý xác thực tính nhất quán dựa trên thiết lập trong CQRS?
- 15. Làm cách nào để xử lý xác thực và ủy quyền với tiết kiệm?
- 16. Làm cách nào để xác định có điều kiện một hàm trong javascript?
- 17. Làm thế nào để xử lý sự kiên trì xác thực người dùng trong IOS?
- 18. Làm cách nào để xử lý sự kiện SessionSecurityTokenReceived trong Global.asax?
- 19. Làm cách nào để xử lý sự kiện nhấp trong điều khiển Danh sách Spark trong Flex 4
- 20. Làm cách nào để xử lý các ngày trong Backbone?
- 21. Làm cách nào để xóa trình xử lý sự kiện trong javascript?
- 22. Làm cách nào để xử lý các sự kiện nhấp chuột phải trong angular.js?
- 23. Làm cách nào để chỉ định trẻ em trong trình xử lý sự kiện Backbone.js?
- 24. Làm cách nào để xử lý sự kiện nhấp trong Listview trong Android?
- 25. Làm cách nào để tôi có thể xử lý chính xác phương thức "công khai" này?
- 26. Làm thế nào để xử lý một waithandle chính xác
- 27. Làm cách nào để thêm trình xử lý sự kiện CSS AnimationEnd vào tiện ích GWT?
- 28. MVC3 Điều kiện vô hiệu hóa Html.TextBoxFor()
- 29. Làm cách nào để làm cho trình xử lý sự kiện chạy không đồng bộ?
- 30. Làm cách nào để bạn xử lý nhiều lựa chọn trong điều khiển kiểu thả xuống?
Địa chỉ thanh toán và địa chỉ giao hàng của bạn có riêng biệt không? Hoặc một mô hình được đóng gói cùng nhau? – chemicalNova
Chúng nằm trên cùng một kiểu máy. Cả hai đều là thuộc tính cùng loại. – Mike