2017-02-13 61 views
0

將傳統剃刀語法應用於textarea並應用asp-for標記(以及在視圖模型中應用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 =「啓用」'是有效的,所以它不能解決這個問題。 –

+0

當'@ disabled'被設置爲'disabled = \「disabled \」'時,整個屬性被再次省略。 –

回答

0

我只是剛剛開始使用ASP.NET,所以我不確定第一個問題:「這是記錄/預期的行爲嗎?」因此這只是一個部分答案,我正在尋找關於第一個問題的更多信息。

然而,要回答第二個問題,一種可能性似乎依靠其提供更多的靈活性(年長?)HTML助手:

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

第二個參數是被應用到其他屬性輸出textarea

此外,還應該注意的是,在XHTML attribute minimization is forbidden中。

在XHTML,屬性的最小化是禁止的,和殘疾人 屬性必須被定義爲<input disabled="disabled" />

我似乎無法找到這方面的官方文檔。