Tôi không thể tìm ra lý do tại sao nó không hoạt động. Tôi đang sử dụng ASP.NET MVC2 và tôi chỉ đơn giản là cố gắng để ghi đè lên sự xuất hiện soạn thảo mặc định bằng cách đặt mã này vào /Shared/EditorTemplates/String.ascx:EditorFor - Mục mẫu được chuyển vào từ điển là loại 'System.Int32', nhưng từ điển này yêu cầu một mục kiểu của 'System.String'
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<%=Html.TextBox(null, Model, new { @class="Text" }) %>
Sau đó, trong trang Xem của tôi, tôi có điều này dòng đó là kiểu Int32:
<%: Html.EditorFor(model => model.AppID) %>
Đối với một số lý do, kết quả này trong các lỗi:
System.InvalidOperationException: The model item passed into the dictionary is of type 'System.Int32', but this dictionary requires a model item of type 'System.String'.
tôi không thấy bất cứ điều gì như thế nào có thể là sai về kết thúc của tôi, nó khá đơn giản. Tại sao nó cố gắng sử dụng trình soạn thảo cho một chuỗi nếu kiểu là Int32? Tôi cũng nên đề cập đến rằng tôi đã ghi đè các biên tập viên cho một bool? gõ (để hiển thị các giá trị boolean dưới dạng hộp kiểm) và nó hoạt động tốt trên cùng một trang.
EDIT
Vâng, tôi đã tìm kiếm nhiều lần, nhưng tôi không thấy bài này cho đến khi tôi tìm thấy nó trong các liên kết "có liên quan". Tôi cho rằng điều này sẽ làm việc, tôi vẫn nghĩ đó là một việc thực hiện khó hiểu và mâu thuẫn mặc dù:
Asp.net Mvc Display template of String, but now every simple type wants to use it!
Ok, tôi đoán đó là phần khó hiểu đối với tôi. Tôi nghĩ nó đã sử dụng sự phản chiếu để chọn đúng mẫu trình soạn thảo. đây không phải là trường hợp à? Như tôi đã nói, tôi có bool? mẫu và nó biểu diễn các giá trị boolean một cách chính xác - nó không gọi mẫu chuỗi. – user949286
Bạn có mẫu int riêng biệt không? –
Không, tôi không biết. Tôi sẽ không nghĩ rằng tôi sẽ cần một, bởi vì tôi lần đầu tiên tạo ra các bool? mẫu và mọi thứ tiếp tục hoạt động. Sau đó, tôi tạo ra các mẫu chuỗi và lỗi này xảy ra. Có lẽ tôi nên chỉ cần tạo mẫu int, nhưng tôi có thể có nhiều loại khác và tôi muốn nó sử dụng mẫu mặc định cho những người vì vậy tôi không phải tạo mẫu không cần thiết dư thừa. – user949286