0

ビューモデルにバインドされた次の部分ビューがあります。

@model Omega.UI.WebMvc.Models.InputWithLabelViewModelBase


@{
    string required = null;
}

@if (Model.IsRequired)
{
    {
    required = "required";
    }
}

<td><label id="@Model.LabelId">@Model.LabelText</label></td>
<td>
    <input  id="@Model.InputId" data-bind= "value: @Model.CurrentValueProperty" required="@required"/>
    <span class="k-invalid-msg" data-for="@Model.InputId"></span>
</td>

が true の場合は を利用可能にしIsRequiredたいのですが、それ以外のrequired attribute場合はそうではありません。そのコードを実行してIsRequiredfalse のrequired attribute場合、空の値が表示されます: required="". 私はasp mvcにまったく慣れていないので、何が間違っているのかわかりません。

ハトの投稿ごとに更新:

これは動作しません:

@{
    bool required = Model.IsRequired;
}


<td><label id="@Model.LabelId">@Model.LabelText</label></td>
<td>
    <input  id="@Model.InputId" data-bind= "value: @Model.CurrentValueProperty" required="@required" />
    <span class="k-invalid-msg" data-for="@Model.InputId"></span>
</td> 

これにより、次の html がレンダリングされます。

required="False"(IsRequired が false の場合、またはその逆の場合)

これは正しくありません:

HTMLドキュメントから:

必須属性はブール属性であり、次の方法で設定できます。

<input required>
<input required="required">
<input required="">

注: Razor 2.0 を使用しています

私は何か間違ったことをしていますか?

4

1 に答える 1

0

Mvc は、これらの特殊なケースでブール値を使用して動作します (checked のように必要な動作を想定しています)。これを試して:

required="@Model.IsRequired"

上記の例も機能するはずなので、プロジェクト参照をチェックして、Razor 2 を使用していることを確認できますか。System.Web.Razor を右クリックしてプロパティを表示し、バージョンを確認します。2.0.0.0 である必要があります

于 2012-10-31T17:45:05.790 に答える