Tôi biết rằng bạn sử dụng dấu gạch dưới cho thuộc tính dữ liệu với dấu gạch ngang ("data_bind" thay vì "liên kết dữ liệu", trong đối tượng) và chúng tự động được thay thế bằng dấu gạch nối. Nhưng tôi đã gặp phải vấn đề mà bạn không thể thực hiện "gạch dưới" này, nếu thuộc tính kết thúc bằng "tên". Vì vậy, tôi đã cố gắng cả hai, nhưng không phải công việc:Không thể sử dụng thuộc tính dữ liệu kết thúc bằng "tên"?
@Html.TextBoxFor(model => model.Street, new { data_encrypted_name = "street" })
@Html.TextBoxFor(model => model.Street, new { @data_encrypted_name = "street" })
Khi tôi xem HTML được tạo ra, đối với cả hai trường hợp trên, nó tạo ra:
<input data-encrypted- id="ViewModel_Street" name="ViewModel.Street" type="text" value="" />
Lúc đầu, tôi nghĩ sức mạnh này có cái gì để làm với nhiều dấu gạch/dấu gạch nối, nhưng tôi đã cố gắng thêm hai trường hợp thử nghiệm, để xem những gì sẽ xảy ra, và cả hai đều chỉ làm việc tốt:
@Html.TextBoxFor(model => model.Street, new { data_encrypted_namme = "street" })
@Html.TextBoxFor(model => model.Street, new { data_name_encrypted = "street" })
Vì vậy, vấn đề này chắc chắn liên quan đến việc có "tên "ở cuối thuộc tính.
Tôi đang làm điều gì đó sai hoặc thiếu một cái gì đó, hoặc là một lỗi trong cách .NET chuyển đổi các thuộc tính?
(Để làm rõ, chúng tôi sử dụng Braintree Thanh toán, và họ đòi hỏi việc sử dụng các "dữ liệu được mã hóa-name" thuộc tính trên đầu vào nhất định, vì vậy chúng tôi không thể chỉ chọn một tên thuộc tính.)
Vì 'tên' là thuộc tính HTML hợp lệ, có thể gây ra sự cố của bạn ..? – tier1
Hmm, tốt, dọc theo dòng ý tưởng đó, tôi đã thử data_encrypted_id và data_encrypted_class, nhưng cả hai đều hoạt động như mong đợi. Vì vậy, nó vẫn có vẻ trực tiếp liên quan đến "tên" ở cuối. Cảm ơn những suy nghĩ! –
Giống như một FYI, tôi không thể xác nhận hành vi này, VS2012, MVC4, tệp cshtml trên trình trợ giúp Html.TextboxFor. @ Html.TextBoxFor (x => x.TrapNumber, new {data_encrypted_name = "Test"}) hiển thị thích hợp cho tôi. . Ngoài ra thử nghiệm trên TextArea không có vấn đề. Tôi biết điều này không giải quyết hành vi của bạn, nhưng muốn cung cấp cho cái nhìn sâu sắc trong đó nó không xuất hiện để được một khuôn khổ 'lỗi' với tôi ... – Tommy