0

私は次のクラスを持っています:

   public class City {  
      public string Name { get; set; }
      public bool CityValid { get; set; }
   }

名前の設定方法は知っていますが、チェックボックスのように機能するように CityValid フィールドを設定するにはどうすればよいですか。HTML ヘルパーを使用せずにこれを行いたいと思います。

4

3 に答える 3

3

本当にヘルパーを使用したくない場合は、通常の 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)
于 2012-05-08T12:33:50.460 に答える
1

あなたの見解では、EditorForヘルパーを使用することができます:

@model City
...
@Html.EditorFor(x => x.CityValid)

ブールフィールドのデフォルトのエディターテンプレートは、チェックボックスを生成します。

于 2012-05-08T12:27:24.070 に答える
0

最初にHTMLヘルパーを使用して作成し、ページの実行時に作成されるマークアップを確認してから、そのマークアップを再作成することができます...

于 2012-05-08T12:30:10.043 に答える