2017-02-13 8 views
0

asp-forタグが適用されたtextarea(およびビューモデルに適用されたRequiredAttribute)で従来の剃刀の構文を適用すると、相互に干渉しているようです。タグヘルパーが伝統的な剃刀の構文を妨げているようです

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

disabled属性は適用されません。

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

asp-forニーズがビューモデルから派生し、一致する属性に書き換えられるので、私は何か間違って(またはサポートされていない)しなければならないを理解することができます。

私の主な質問は以下のとおりです。

  1. は、この文書化/期待される動作ですか?
  2. HTML出力に似たような変更を加えるための「ASP.NET」の方法は何ですか?
+0

私は試していませんが、あなたは 'attr =" value "アプローチに従う必要があると思います。つまり、 'disabled =" @ disabled "'のようなものです。興味深いことに、それはうまくいきます! –

+0

@PeterBさらに、XHTMLでは[最小化されていないバージョンが必要です](http://www.w3schools.com/tags/att_input_disabled.asp)。しかし、 'disabled =" "'または 'disabled =" enabled "が有効であるとは思わないので、この問題は解決しません。 –

+0

'@ disabled'が' disabled = \ "disabled \"に設定されている場合、属性全体が再び省略されます。 –

答えて

0

私はASP.NETで始まったばかりなので、最初の質問は不明です:"これは文書化された/期待される動作ですか?"これは部分的な答えであり、私は最初の質問に関するより多くの情報を探しています。

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

第二のパラメータが適用される追加の属性です:

しかし、2つ目の質問に答えるために、一つの可能​​性は、より多くの柔軟性を提供します(?古い)HTMLヘルパーに依存しているようですtextareaの出力。

また、XHTML attribute minimization is forbiddenにも注意してください。 XHTMLでは

、属性の最小化は禁止されており、無効 属性が<input disabled="disabled" />として定義する必要があります。

これについての公式の文書は見つかりませんでした。

関連する問題