11

HtmlHelper を使用して、次のようにビューにチェックボックスを作成しています。

<%= Html.CheckBoxFor(model => model.SeatOnly, new { checked = "checked" })%>

ただし、checked は予約済みのキーワードであるため、エラーがスローされます。「予約語プレフィックス」を使用し、次のように属性の前に uderscore を配置する必要があると言っている人を何人か見つけました。

<%= Html.CheckBoxFor(model => model.SeatOnly, new { _checked = "checked" })%>

これはエラーを生成しませんが、生成された html では属性は実際には '_checked' であり、これは機能しないことを意味します (firebug を使用してアンダースコアを削除すると、属性が有効になります)。

まだ使用している間にこれを回避する方法を知っている人はいますCheckBoxForか?

ありがとう

4

4 に答える 4

17
<%= Html.CheckBoxFor(model => model.SeatOnly, new { @checked = "checked" })%>

「@」を前に付ける必要があります:-)

アップデート

以下でテストしただけで動作します。これを試して ...

モデル

public class MyModel
{
    public bool SomeBooleanValue { get; set; }
    public string Title { get; set; }
}

表示(重要なビットのみに切り取られています)

<%= Html.TextBoxFor(x => x.Title) %>

<%= Html.CheckBoxFor(x => x.SomeBooleanValue, new { @checked = "checked" }) %>
于 2010-04-22T08:56:18.140 に答える
4

私は同じ問題を抱えていました.htmlコードでは「checked」属性が常に省略されていました。モデルに「true」を渡すことで問題を解決しました。スニペットは次のようになります。

MyModel model = new MyModel();
model.SomeBooleanValue = true;

チェックボックスをモデルに接続すると、チェックボックスには常にモデルの値が表示されます。モデルの値が「false」の場合、チェックボックスは常にオフになります。

たぶんこれが役立ちます..

于 2010-08-24T13:33:01.150 に答える
0

使用する@checked

属性class(予約語)でも発生し、使用します @class

于 2010-04-22T09:19:26.297 に答える
0

HtmlHelperにchecked属性を登録させる方法がわからなかったので、Html.CheckBox("SeatOnly", true)代わりに単純に使用しました。このようにして、ビューモデルのプロパティはまだ設定されており、チェックボックスがオンになっています。

これは問題ありませんが、@checked が @class と同じように機能しない理由を知りたいと思っています。

于 2010-04-22T10:01:01.483 に答える