2011-12-06 42 views
14

Biểu mẫu Html được điều khiển bằng các mẫu Knockout JS và jQuery. Xác thực jQuery cơ bản đang được sử dụng để xác thực các trường. Biểu mẫu được tuần tự hóa thành JSON và được gửi tới hành động điều khiển MVC bằng AJAX. Hành động điều khiển MVC thực hiện xác thực mô hình phía máy chủ, thêm lỗi vào ModelState.Lỗi hiển thị khi sử dụng Knockout JS + MVC + Xác thực mô hình phía máy chủ?

  1. Cách tốt nhất để trả lại lỗi đó cho máy khách - lặp qua lỗi trong ModelState và thêm chúng vào tập hợp khóa/giá trị lỗi trong phản hồi JSON?

  2. Làm cách nào để hiển thị lỗi trên máy khách? Làm cách nào để bạn 'liên kết' tập hợp khóa/giá trị của các lỗi với các trường có liên quan trên mô hình?

Giả sử có trường "tên" trên mô hình, với hộp văn bản tương ứng được biểu hiện bằng mẫu jQuery. Làm cách nào để có lỗi cho trường "tên" trong bộ sưu tập lỗi và hiển thị thông báo lỗi bên dưới hộp văn bản "tên"?

Trả lời

5

Có hai plugins validation cho ko.js (found here) có thể giúp bạn,

Knock-Knock validation

Knockout Validation

Bạn có thể dây là một trong những số liệu xác nhận unobstrsive MVC tiêm phía khách hàng.

+10

Sau khi xem xét tùy chọn thứ 2 (Xác nhận Knockout) Tôi đã tự hỏi làm thế nào bạn có thể ánh xạ các thuộc tính xác nhận từ mô hình khung nhìn MVC tới phương thức .extend() trong Knockout? – Ryan

4

Nếu bạn đang sử dụng MVC, javascript không phô trương thực hiện xác thực phía máy khách dựa trên bộ xác thực trong mô hình của bạn. Bạn không cần thực hiện bất kỳ cấu hình bổ sung nào.

Có nói rằng, không có cách nào trực tiếp để thực hiện xác thực phía máy khách dựa trên mô hình sử dụng javascript và knockoutj.

Có một số cách để thực hiện điều đó ở phía máy khách.

  1. Jquery hoặc bất kỳ khung xác thực nào khác có thể thực hiện xác thực. Nhưng bạn cần phải có thẻ. Lợi thế với cách tiếp cận này là mã của bạn sẽ đơn giản và dễ bảo trì.
  2. Bạn có thể thực hiện xác thực tùy chỉnh phía máy khách bằng javascript và liên kết thông báo xác thực bằng cách loại trực tiếp. Điều này yêu cầu bạn tạo các nhãn lỗi cho mỗi biến đầu vào. Lợi thế với cách tiếp cận này là bạn sẽ có toàn quyền kiểm soát cách thức và những gì phải được hiển thị.

Cá nhân, tôi có yêu cầu tương tự trong một trong các dự án gần đây và tôi đã đạt được nó bằng cách sử dụng kiểm tra xác thực tùy chỉnh và nhãn lỗi.

Các vấn đề liên quan