2011-10-20 21 views
7

Tôi đang làm việc với tiện ích BeginCollectionItem Steve Sanderson để làm cho một danh sách các đối tượng được chỉnh sửa trong MVC3, và nó hoạt động tuyệt vời khi bạn đang render toàn bộ một bộ sưu tập từ một iterator. Vấn đề của tôi đang đến khi tôi đang cố gắng thêm một mục mới vào bộ sưu tập và trả về html đại diện cho đối tượng đó. Đối với một số lý do, chú thích dữ liệu của tôi không được hiển thị trong html đến từ mã.BeginCollectionItem của Steve Sanderson không hoạt động trong mọi trường hợp ... giải pháp tiềm năng?

Có bất kỳ sửa chữa có sẵn vào đó, hoặc là có bất cứ điều gì khác nhau, sans phải viết xác nhận bằng tay, mà tôi có thể làm gì để giải quyết vấn đề này?

Cảm ơn.

+1

Nếu bạn đăng một số mã chúng ta có thể có một sự hiểu biết tốt hơn về những gì bạn đang làm – Iridio

+0

Bạn có bận tâm để đọc bài thứ hai - http://blog.stevensanderson.com/2010/01/28/validating-a-variable -length-list-aspnet-mvc-2-style/?? – Ahmad

+5

Ahmed ... có thể sử dụng những giai điệu tương tự với bạn ... Tôi đang sử dụng MVC3, và jquery validation không phô trương. Bài đăng thứ hai của anh ấy không có giá trị gì đối với trường hợp của tôi. –

Trả lời

21

Những điều cần xem xét:

  1. chú thích dữ liệu sẽ không được trả lại, trừ khi một FormContext tồn tại trong bất cứ phương pháp nào bạn đang sử dụng để tạo ra đối tượng bổ sung này. Nếu bạn đang sử dụng một cái nhìn cục bộ, thêm dòng sau vào nó ở đầu trang:

-

if (this.ViewContext.FormContext == null) 
    { 
     this.ViewContext.FormContext = new FormContext(); 
    } 
  1. Nếu bạn đang tự động thêm một mục vào trang thông qua AJAX, sau đó sau khi bạn thêm item mới, bạn phải xóa các dữ liệu xác nhận trong DOM, và tái phân tích tất cả các yếu tố xác nhận của bạn, như vậy:

-

$("form").removeData("validator"); 
    $("form").removeData("unobtrusiveValidation"); 
    $.validator.unobtrusive.parse("form"); 
+0

@counsellorben ... Cảm ơn bạn đã trả lời ... Tôi không biết rằng nó đang tìm kiếm biểu mẫu. Tôi sẽ thử nó vào thứ hai và xem nó hoạt động ra sao. Cám ơn! –

+0

Có lý do nào cho hai dòng ở trên dòng "phân tích cú pháp" không ?? –

+0

Khi các thuộc tính xác thực không phô trương được phân tích cú pháp, dữ liệu liên quan đến các thuộc tính được đặt vào DOM. Để phân tích lại chính xác, giải pháp đơn giản nhất là xóa dữ liệu khỏi DOM. – counsellorben

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