标记助手似乎干扰了传统的Razor语法

时间:2017-02-13 16:48:22

标签: asp.net-mvc razor tag-helpers

将传统的Razor语法应用于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'方式是什么?

1 个答案:

答案 0 :(得分:0)

我刚刚开始使用ASP.NET,所以我不确定第一个问题:&#34;这是记录/预期的行为吗?&#34; 这只是一个部分答案,我正在寻找有关第一个问题的更多信息。

然而,要回答第二个问题,一种可能性似乎依赖于(较早的? 1 )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" />

1 我似乎无法找到关于此的官方文档。