Dữ liệu Html5- * với asp.net mvc TextboxFor các thuộc tính html


244

Làm cách nào để thêm data-*thuộc tính html bằng TextboxFor?

Đây là những gì tôi hiện có:

@Html.TextBoxFor(model => model.Country.CountryName, new { data-url= Url.Action("CountryContains", "Geo") })

Như bạn thấy, việc -gây ra một vấn đề ở đây data-url. Có gì xung quanh đây?


Câu trả lời:


417

Bạn có thể sử dụng dấu gạch dưới ( _) và trình trợ giúp đủ thông minh để thực hiện phần còn lại:

@Html.TextBoxFor(
    model => model.Country.CountryName, 
    new { data_url = Url.Action("CountryContains", "Geo") }
)

Và đối với những người muốn đạt được điều tương tự trong các phiên bản ASP.NET MVC 3 trước đó, họ có thể:

<%= Html.TextBoxFor(
    model => model.Country.CountryName, 
    new Dictionary<string, object> { 
        { "data-url", Url.Action("CountryContains", "Geo") } 
    }
) %>

8
Là hành vi này được chỉ định bất cứ nơi nào :)?
Rookian

5
@Ryan, không, không vì nó không có ý nghĩa để làm việc EditorFor. Trình trợ giúp EditorFor được sử dụng để hiển thị một mẫu HTML tùy chỉnh tương ứng với loại đã cho. Một mẫu có thể chứa nhiều yếu tố, vì vậy việc nói về các thuộc tính trong một mẫu không thực sự có ý nghĩa. Tất nhiên, bạn luôn có thể viết một mẫu tùy chỉnh hoạt động với additionalViewDatatham số có thể được truyền cho mẫu trình soạn thảo và chỉ cần xuất chúng dưới dạng các thuộc tính trên trường đầu vào tương ứng.
Darin Dimitrov

2
Chỉ cần rõ ràng đánh dấu kết quả có dấu gạch dưới và không gạch nối. Câu "Bạn có thể sử dụng dấu gạch dưới (_) và người trợ giúp đủ thông minh để làm phần còn lại", cụ thể là một chút về trí thông minh được cho là khiến tôi tin rằng nó sẽ tự động chuyển đổi thành - nhưng không. Hỗ trợ HTML5 -.
Alan Macdonald

2
@AlanMacdonald the _được chuyển đổi thành -phiên bản cũ hơn (giữa?) Của MVC. Có thể các phiên bản gần đây nhất đã bỏ nó, nhưng tôi đang sử dụng thành công trên MVC 3 và 4.
brichins

4
@AlanMacdonald (và những người khác đang đọc), _cũng được chuyển đổi thành -MVC 5. Tôi đang sử dụng thành công trong một dự án tôi đang thực hiện, sử dụng MVC 5.
Amy Barrett
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.