Wie kann ich ein Klassenattribut zu einem HTML-Elemente erzeugt durch MVC HTML-Helpers hinzu?

StackOverflow https://stackoverflow.com/questions/879266

  •  22-08-2019
  •  | 
  •  

Frage

ASP.NET MVC HTML-Elemente mit Hilfe von HTML-Helfern, zum Beispiel @Html.ActionLink() erzeugen kann, @Html.BeginForm() und so weiter.

Ich weiß, ich Form Attribute durch die Schaffung eines und dieses Objekt übergeben für den Parameter (vierte in diesem Fall), wo ein htmlAttributes id für das Element festgelegt wird:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})

Aber was ist mit dem class Attribute? Offensichtlich funktioniert das nicht:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})

Wie das nur zufällig Syntaxfehler führt, wenn meine Ansicht angefordert wird, weil es etwas anderes erwartet, nachdem das C # Schlüsselwort class stoßen.

Ich habe auch versucht:

new { _class = "myclass"}

und

new { class_ = "myclass"}

Aber sie haben auch nicht funktionieren, da die Unterstrichen durch Bindestriche ersetzt bekommen.

Ich weiß, dass ich kann genauso gut die HTML-Elemente von Hand schreiben oder das Formular in einem <div class="myClass"> wickeln, aber ich würde immer noch daran interessiert zu wissen, wie es soll getan werden.

War es hilfreich?

Lösung

Um einen anonymen Typ (oder jede Art) mit einer Eigenschaft zu erstellen, die eine reserviertes Schlüsselwort wie sein Name in C # können Sie die Eigenschaftsnamen mit einem at-Zeichen voranstellen, @:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { @class = "myclass"})

Für VB.NET diese Syntax erreicht werden würde den Punkt, . verwenden, die in dieser Sprache ist Standard-Syntax für alle anonyme Typen :

Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })

Andere Tipps

Aktuelles Best Practice in CSS Entwicklung ist allgemeinere Selektoren mit Modifikatoren zu schaffen, das so weit wie möglich über die gesamte Website angewandt werden kann. Ich würde versuchen, für einzelne Seitenelemente, die getrennte Arten zu vermeiden.

Wenn der Zweck der CSS-Klasse auf dem <form/> Element ist die Art der Elemente innerhalb der Form zu steuern, können Sie die Klasse Attribut das bestehende <fieldset/> Element hinzufügen, die standardmäßig jede Form verkapselt in Web-Seiten, die von ASP.NET MVC . Eine CSS-Klasse auf dem Formular ist nur selten notwendig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top