Legen Sie das deaktivierte HTML-Attribut für TextBoxFor HtmlHelper dynamisch fest

8

Ich versuche, das Attribut disabled für TextBoxFor HtmlHelper

dynamisch festzulegen %Vor%

Aber selbst wenn disabled="" vorhanden ist, ist es dasselbe wie disabled="disabled" . Wie kommt man dazu?

    
Tony 18.04.2012, 10:28
quelle

4 Antworten

19

Ich habe vor ungefähr einem Monat das selbe Problem und habe mit dieser Erweiterungsmethode fertig gemacht

%Vor%

Und danach kannst du es so benutzen

%Vor%

BEARBEITEN (nach Paul ist Kommentar ):

Die Verwendung von data-xxx html-Attributen kann mithilfe des Konstruktors der System.Web.Routing.RouteValueDictionary Klasse, da Unterstriche nicht automatisch in Minuszeichen umgewandelt werden.

Verwenden Sie die Methode System.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes stattdessen: löst dieses Problem.

AKTUALISIERTER CODE (nur Körper der Erweiterungsmethode)

%Vor%     
Chuck Norris 18.04.2012, 10:34
quelle
0

Die Verwendung der unten angegebenen Erweiterungsmethode führt zu ähnlichen Ergebnissen, aber diese ist vielleicht fragiler:

%Vor%

Erweiterung:

%Vor%     
goofballLogic 11.12.2013 10:49
quelle
0

Wahrscheinlich wird Ihre Bühnen-ID nicht festgelegt

%Vor%     
Pranav Labhe 09.02.2015 04:57
quelle
0

Wir sind eigentlich nur auf dasselbe Problem gestoßen. Wir haben schließlich eine Erweiterungsmethode mit überladenen Parametern implementiert, die einen booleschen Wert annimmt, der angibt, ob das Steuerelement deaktiviert werden soll oder nicht. Wir fügen einfach das "disabled" -Attribut hinzu, wenn es angemessen ist, und lassen den eingebauten HtmlHelper das schwere Heben behandeln.

Erweiterungsklasse und Methode:

%Vor%

Dann müssen Sie nur auf Ihre neue Klasse verweisen und @Html.TextBoxFor(m => m.SomeValue, new { @class = "someClass" }, <Your bool value>)

aufrufen

Es ist erwähnenswert, dass Sie diese Erweiterungen für alle TextBoxFor-Überladungen definieren müssen, die Sie verwenden möchten, aber es scheint ein vernünftiger Kompromiss zu sein. Sie können den gleichen Code auch für andere HtmlHelper verwenden, denen Sie die Funktionalität hinzufügen möchten.

    
neumann1990 27.08.2015 18:46
quelle

Tags und Links