Tôi có Knockoutjs thiết lập để tự động tạo ra một danh sách có thể chỉnh sửa các giá trị sử dụng đoạn mã sau:Làm cách nào để tôi gặp lỗi ModelState.AddModel để liên kết với việc loại bỏ xác thực được tạo tự động?
var requirementModel = function() {
var self = this;
self.requirementtypes = ko.observableArray(@Html.Interpret(Model.requirementtypes));
self.requirementid = ko.observable(@Html.Interpret(Model.requirementid));
self.AddRequirementType = function() {
self.requirementtypes.push({
requirementtypeid: null,
number: "",
requirementid: 0
});
};
self.RemoveType = function(Type) {
self.requirementtypes.remove(Type);
};
self.hookUpValidation = function() {
$.validator.unobtrusive.parseDynamicContent('.dynamicData');
};
};
var viewModel = new requirementModel();
ko.applyBindings(viewModel);
Với html:
<div class="small-box dynamicData" data-bind="template:{ name: 'requirementType-template', foreach: requirementtypes, afterRender:$root.hookUpValidation }" ></div>
<button data-bind='click: AddType'>Add Type</button>
Tôi đã nối xác nhận cho dữ liệu động sử dụng mã khuyến cáo trên stackoverflow .
Khi tôi gửi lại cho máy chủ (tôi không sử dụng JSON chỉ tạo bưu điện) tôi có thể làm xác nhận phức tạp hơn và nếu có điều gì không Tôi có thể sử dụng ModelState.AddModelError ("tên trường đầu vào", "Tôi thương hại những kẻ ngốc đã phá vỡ điều này "); Điều này hoạt động hoàn hảo với một trong hai loại mạnh mẽ hoặc @ Html.ValidationMessage ("tên trường đầu vào") cho các trường không động
Tuy nhiên tôi không thể tìm cách móc Lỗi máy chủ bên mô hình động với nội dung động.
Tôi có thẻ span hoạt động với phía máy khách và chúng hoạt động hoàn hảo. Tuy nhiên, chúng không được nối vào dữ liệu được trả về sau khi xác thực serverside không thành công và trả về trang. Bất kỳ ý tưởng làm thế nào để đạt được điều này?
Cảm ơn
Cách tiếp cận ưa thích là xây dựng một ModelBinder tùy chỉnh để liên kết các giá trị đến với mô hình của bạn và để cơ chế xác thực mặc định khởi động. Bạn có nghĩa là mô hình của bạn được tạo ra trên phía máy khách và bạn không có nó được xác định trên máy chủ? – Aliostad
Mô hình được xác định ở phía máy chủ. Một phần của trang sử dụng knockoutjs để thêm các mục vào danh sách. Tôi nhận được tất cả mọi thứ trở lại hoàn hảo thông qua bài viết. Tất cả dữ liệu động đều được đăng. Vấn đề là nếu tôi nâng lên phía máy chủ lỗi (ví dụ: xác thực phức tạp) và sau đó quay lại chế độ xem, bất kỳ lỗi nào được nêu ra đối với các mục được tạo động không bị ràng buộc. – GraemeMiller
Tôi nghĩ rằng tôi có thể sẽ phải truy cập vào mô hình và thêm các lỗi thích hợp vào mô hình Knockout và sau đó sử dụng nó. Chỉ cần tự hỏi nếu có một cách thanh lịch hơn (như thế nào tôi đã xác nhận phía khách hàng) – GraemeMiller