web-dev-qa-db-ja.com

MVC Razorラジオボタン

部分ビュー私はこのようなテキストボックスで作業します。

@model Dictionary<string, string>
@Html.TextBox("XYZ", @Model["XYZ"])

ラジオボタンを生成し、フォームコレクションで目的の値をYES/NO True/Falseとして取得するにはどうすればよいですか?現在、以下のいずれかの値を選択すると、「ABC」がnullになります。

   <label>@Html.RadioButton("ABC", @Model["ABC"])Yes</label>
   <label>@Html.RadioButton("ABC", @Model["ABC"])No</label>

コントローラー

        public int Create(int Id, Dictionary<string, string> formValues)
        {
         //Something Something
        }
51
Nanu

複数のアイテムに対してこれを行うには、次のようにします。

foreach (var item in Model)
{
    @Html.RadioButtonFor(m => m.item, "Yes") @:Yes
    @Html.RadioButtonFor(m => m.item, "No") @:No
}
62
mattytommo

単に:

   <label>@Html.RadioButton("ABC", True)Yes</label>
   <label>@Html.RadioButton("ABC", False)No</label>

ただし、cachoで提案されているように、常に強く型付けされたモデルを使用する必要があります。

23
Kuqd

私は次のような方法でこれを行いました:

  @Html.RadioButtonFor(model => model.Gender, "M", false)@Html.Label("Male")
  @Html.RadioButtonFor(model => model.Gender, "F", false)@Html.Label("Female")
13
Anjan Kant

this SO answerで同じ問題を解決します。

基本的に、ラジオボタンを厳密に型指定されたモデルのブールプロパティにバインドします。

@Html.RadioButton("blah", !Model.blah) Yes 
@Html.RadioButton("blah", Model.blah) No 

それが役に立てば幸い!

13
Cacho Santa
<label>@Html.RadioButton("ABC", "YES")Yes</label>
<label>@Html.RadioButton("ABC", "NO")No</label>
8
Nanu

MVC5 Razor Views

以下の例では、ラベルをラジオボタンにも関連付けます(関連するラベルをクリックすると、ラジオボタンが選択されます)

// replace "Yes", "No" --> with, true, false if needed
@Html.RadioButtonFor(m => m.Compatible, "Yes", new { id = "compatible" })
@Html.Label("compatible", "Compatible")

@Html.RadioButtonFor(m => m.Compatible, "No", new { id = "notcompatible" })
@Html.Label("notcompatible", "Not Compatible")
4
Prasad De Silva
<p>@Html.RadioButtonFor(x => x.type, "Item1")Item1</p>
<p>@Html.RadioButtonFor(x => x.type, "Item2")Item2</p>
<p>@Html.RadioButtonFor(x => x.type, "Item3")Item3</p>
2
Buhlebesizwe
<div class="col-md-10">
    Male:   @Html.RadioButton("Gender", "Male")
    Female: @Html.RadioButton("Gender", "Female")
</div>                         
1
Debendra Dash

これは私のために動作します。

@{ var dic = new Dictionary<string, string>() { { "checked", "" } }; }
@Html.RadioButtonFor(_ => _.BoolProperty, true, (@Model.BoolProperty)? dic: null) Yes
@Html.RadioButtonFor(_ => _.BoolProperty, false, ([email protected])? dic: null) No
1
jayson.centeno

@ Html.RadioButtonForヘルパーを使用せずにラジオボタン(およびHTMLフォーム全体)を実行する1つの方法を共有したかったのですが、@ Html.RadioButtonForがおそらくより優れた新しい方法だと思います(1つには、強く型付けされているため、 ModelPropertyと密接にリンクされています)。それにもかかわらず、これはあなたがそれを行うことができる昔ながらの、異なる方法です:

    <form asp-action="myActionMethod" method="post">
        <h3>Do you like pizza?</h3>
        <div class="checkbox">
            <label>
                <input asp-for="likesPizza"/> Yes
            </label>
        </div>
    </form>

このコードはmyView.cshtmlファイルに入れることができ、クラスを使用してラジオボタン(チェックボックス)のフォーマットを取得することもできます。

0
user5138047