Jak wiesz, możemy ustawić atrybuty na actionLink lub textBox w widokach maszynki, ale jak ustawić atrybuty na @Html.EditorFor
, wiem, że EditorFor jest dynamicznym elementem, który można ustawić zgodnie z typem modelu, ale wszystkie kształty mogą uzyskać atrybuty. Czy jest jakiś sposób ustawić atrybut na @Html.EditorFor
coś takiego: new {@class = "myclass"}
?Ustaw atrybut klasy na Html.EditorFor w ASP.NET MVC Razor View
Odpowiedz
Pomocnik EditorFor
renderuje odpowiedni szablon edytora. Może to być default template lub niestandardowy szablon, który napisałeś. Ten szablon może zawierać dowolny znacznik. Może zawierać wiele elementów DOM. Teraz rozumiesz, że prośba o zastosowanie klasy do szablonu nie ma żadnego sensu. Do którego elementu w tym szablonie chcesz zastosować tę klasę? Na przykład z pomocnikiem TextBoxFor wiesz, że wygeneruje on jedno pole wejściowe, więc warto porozmawiać o zastosowaniu do niego klasy CSS (właśnie to umożliwia ci argument htmlAttributes
).
Mówi się, że istnieją różne techniki. Na przykład taki, który bardzo mi się podoba, to napisanie niestandardowego dostawcy metadanych wzorców danych i niestandardowych szablonów edytora, jak opisano w following blog post.
Inną możliwością jest dostosowanie domyślnych szablonów (jak pokazano w poście na blogu Brada Wilsona) i zastosowanie różnych atrybutów HTML do odpowiedniego pola wejściowego. Weźmy przykład z string.cshtml szablonu edytora:
@model string
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, ViewData)
a teraz, gdy chcesz, aby uczynić ten szablon edytora dla niektórych właściwości String modelu Widok:
@Html.EditorFor(x => x.SomeStringProperty, new { @class = "myclass" })
Używam tej klasy dla wejść z type = (text, file) i select (drop down). – Saeid
@dotNetist, OK, tak jak przedstawiono w mojej odpowiedzi masz kilka różnych sposobów na wdrożenie tego. –
dziękuję, ale zanim przeczytałem referencje, o których wspomniałeś, mam pytanie na ten temat: nie chcę ustawiać atrybutu dla wszystkich typów łańcuchów (na przykład), mam atrybut custome (w moim modelu) i zmieniłem szablon kodu (T4) i potrzebuję tej właściwości z tym konkretnym atrybutem niestandardowym, aby ustawić atrybut "myclass" w edytorze dla pomocnika, więc czy myślisz, czy nie? – Saeid
wierzę, że oryginalny plakat był poprawny
każdy
EditorFor()
tworzy główny
HTML element
(choć mogą istnieć inne obecne), więc byłoby to bardzo pomocne, aby móc zdać obiekt zawierającyHTML attributes
zastosowanie do tego głównegoHTML element
.Chcę zastosować „autofocus”
HTML 5
atrybutem jednej dziedzinie na każdym formie,ale nie chcę, aby napisać kod niestandardowy.
Nienawidzę fakt, że jestem obecnie zredukowany do korzystania np
@Html.TextBoxFor()
dla tej jednej dziedzinie po prostu tak, że można zastosować specyficzne atrybuty doinput element
.Sposób
EditorFor()
ma parametr nazywająadditionalViewData
, ale nie mam pojęcia, co można zrobić z tym i wyszukaniu MSDN nie było żadnej pomocy do mnie.
Spróbuj tego:
@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" } })
Spróbuj tego prostego kodu do dodawania klasę @Html.EditorFor()
@Html.EditorFor(x => x.Demo)
<style type="text/css">
#Demo
{
color:#fff;
width: 50%;
}
</style>
ten kod działa poprawnie MVC3
Dodaj niestandardowe atrybuty jak
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @data_minlength = "3", @class = "form-control input-md", @placeholder = "Name", @required = "required", @id= "txtName"} })
Wymień teleinformatyczny do @data_
To wygeneruje poprawny HTML z DATA-
- 1. Konwertuj MVC 2 ASPX na MVC 4 Razor view engine
- 2. ASP.NET MVC Razor Łączenie
- 3. ASP.NET MVC - Ustaw Master View zgodnie ze sterownikiem
- 4. Różnice między Html.TextboxFor i Html.EditorFor w MVC i Razor
- 5. MVC 3 ASPX VS RAZOR View Engine
- 6. Szablony edytora ASP.NET MVC i Html.EditorFor (...) - jak rozróżnić nazwę typu?
- 7. Asp.Net MVC Razor Bootstrap Formularz Wejście
- 8. ASP.NET MVC 2 - HTML.EditorFor() i Custom EditorTemplates
- 9. Master-Detail View ASP.NET MVC
- 10. ASP.NET Core MVC View Components
- 11. ASP.NET MVC C# Razor Minification
- 12. przesłonić "ID" atrybut Html.EditorFor - nie działa
- 13. ASP.NET MVC3 - textarea z @ Html.EditorFor
- 14. Razor kompilatora ostrzegawcze/Błędy - ASP.NET MVC 4
- 15. Jak zakodować '/' w ASP.NET MVC Razor
- 16. Co znaczy @: w ASP.net MVC Razor?
- 17. Jaka jest kolejność wykonywania w MVC Razor view/układ
- 18. Jak włączyć powiązanie danych w KnockoutJS za pomocą mechanizmu ASP.NET MVC 3 "Razor" View Engine?
- 19. Razor ASP.NET MVC, Html.BeginForm, używając instrukcji
- 20. Hosting ASP.NET MVC 3 Razor Engine Site
- 21. ASP.NET MVC wyłącz przyciski opcji Razor Składnia
- 22. Razor ASP.NET MVC - Wszystkie pola formularza są wymagane?
- 23. Razor View Engine i jQuery
- 24. Atrybut autoryzacji w środowisku ASP.NET MVC
- 25. Ustaw bieżącego użytkownika w asp.net mvc
- 26. ASP.NET MVC 4 Razor view nie rozpoznaje Dropdownlist do HTML Helper
- 27. Jak powiązać siatkę Kendo w asp.net MVC 4 Razor
- 28. @ Html.EditorFor Jak ustawić atrybut type = "email"
- 29. Jak wyświetlić kolekcję w widoku projektu ASP.NET MVC 4 Razor?
- 30. C# 6 składni w Razor View
Brak przeciążenia dla tego, więc nie można tego zrobić. Dlaczego po prostu nie użyjesz właściwego typu (np. TextBox) i przekażesz go do tego – musefan