2017-02-13 7 views
0

Anwenden von traditionellen Razor-Syntax auf eine textarea mit einem asp-for-Tag angewendet (und eine RequiredAttribute im View-Modell angewendet) scheint sich gegenseitig zu stören.Tag Helfer scheinen traditionelle Razor Syntax zu stören

@{ string disabled = "disabled"; } 
<textarea asp-for="Motivation" class="form-control" rows="3" @disabled></textarea> 

Das Attribut disabled wird nicht angewendet.

<textarea 
    class="form-control" rows="3" 
    data-val="true" data-val-required="..." 
    id="Motivation" name="Motivation" placeholder="..."> 
</textarea> 

kann ich verstehen, etwas schief gehen muss (oder wird nicht unterstützt), da asp-for Bedürfnisse der passenden Attribute aus dem View-Modell abgeleitet neu geschrieben werden.

Meine Hauptfragen sind:

  1. Ist dies dokumentiert/erwartete Verhalten?
  2. Was ist der 'ASP.NET'-Weg, ähnliche Änderungen an der HTML-Ausgabe vorzunehmen?
+0

Ich habe es nicht versucht, aber ich würde erwarten, dass Sie den 'attr =" Wert "Ansatz verfolgen müssen. So etwas wie "deaktiviert =" @ deaktiviert "'. –

+0

@PeterB Interessanterweise funktioniert das! Darüber hinaus scheint die [nicht-minimierte Version in XHTML erforderlich zu sein] (http://www.w3schools.com/tags/att_input_disabled.asp). Ich glaube jedoch nicht, dass 'disabled = "" oder "disabled =" enabled "" gültig ist, sodass dieses Problem nicht behoben wird. –

+0

Wenn '@ disabled' stattdessen auf' disabled = \ "disabled \" gesetzt ist, wird das gesamte Attribut wieder weggelassen. –

Antwort

0

Ich beginne gerade erst mit ASP.NET, bin also unsicher bezüglich der ersten Frage: "Ist das dokumentierte/erwartete Verhalten?" Dies ist also nur eine Teilantwort und ich bin auf der Suche nach weiteren Informationen zur ersten Frage.

jedoch die zweite Frage zu beantworten, scheint eine Möglichkeit zu vertrauen (ältere ?) HTML Helfer, die mehr Flexibilität bieten:

@{ string disabled = "disabled"; } 
@Html.TextAreaFor(
    m => m.Motivation, 
    new { @class = "form-control", rows = 3, disabled = disabled }) 

Die zweiten Parameter sind weitere Attribute, die auf dem angewandt werden Ausgabe des textarea.

Darüber hinaus sollte auch darauf hingewiesen werden, dass in XHTML attribute minimization is forbidden.

In XHTML, Attribut Minimierung verboten ist, und die deaktivierten Attribut muss als <input disabled="disabled" /> definiert werden.

Ich kann nicht scheinen offizielle Dokumentation zu diesem Thema zu finden.