私は次のクラスを持っています:
public class City {
public string Name { get; set; }
public bool CityValid { get; set; }
}
名前の設定方法は知っていますが、チェックボックスのように機能するように CityValid フィールドを設定するにはどうすればよいですか。HTML ヘルパーを使用せずにこれを行いたいと思います。
私は次のクラスを持っています:
public class City {
public string Name { get; set; }
public bool CityValid { get; set; }
}
名前の設定方法は知っていますが、チェックボックスのように機能するように CityValid フィールドを設定するにはどうすればよいですか。HTML ヘルパーを使用せずにこれを行いたいと思います。
本当にヘルパーを使用したくない場合は、通常の HTML 入力タグを使用します。
<input type="checkbox" id="CityValid" name="CityValid" value="@Model.CityValid" />
<input type="hidden" id="CityValue_Hidden" name="CityValid" value="false" />
name 属性は、サーバーにポストバックするときにモデル バインダーが正しく取得できるように、プロパティ名と一致する必要があります。
ヘルパーを使用すると、上記のマークアップに似たものが生成されます。隠しフィールドがあるため、ボックスをオンにするかどうかに関係なく、フォームの投稿データとともに常に値が送信されます (ボックスをオフのままにしておくと、デフォルトでは値は送信されず、「false」も送信されません)。
ただし、本当に奇妙なことをしていない限り、ヘルパーの使用に固執することをお勧めします。また:
@Html.CheckboxFor(m => m.CityValid)
また
@Html.EditorFor(m => m.CityValid)
あなたの見解では、EditorFor
ヘルパーを使用することができます:
@model City
...
@Html.EditorFor(x => x.CityValid)
ブールフィールドのデフォルトのエディターテンプレートは、チェックボックスを生成します。
最初にHTMLヘルパーを使用して作成し、ページの実行時に作成されるマークアップを確認してから、そのマークアップを再作成することができます...