部分ビュー私はこのようなテキストボックスで作業します。
@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
}
複数のアイテムに対してこれを行うには、次のようにします。
foreach (var item in Model)
{
@Html.RadioButtonFor(m => m.item, "Yes") @:Yes
@Html.RadioButtonFor(m => m.item, "No") @:No
}
単に:
<label>@Html.RadioButton("ABC", True)Yes</label>
<label>@Html.RadioButton("ABC", False)No</label>
ただし、cachoで提案されているように、常に強く型付けされたモデルを使用する必要があります。
私は次のような方法でこれを行いました:
@Html.RadioButtonFor(model => model.Gender, "M", false)@Html.Label("Male")
@Html.RadioButtonFor(model => model.Gender, "F", false)@Html.Label("Female")
this SO answerで同じ問題を解決します。
基本的に、ラジオボタンを厳密に型指定されたモデルのブールプロパティにバインドします。
@Html.RadioButton("blah", !Model.blah) Yes
@Html.RadioButton("blah", Model.blah) No
それが役に立てば幸い!
<label>@Html.RadioButton("ABC", "YES")Yes</label>
<label>@Html.RadioButton("ABC", "NO")No</label>
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")
<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>
<div class="col-md-10">
Male: @Html.RadioButton("Gender", "Male")
Female: @Html.RadioButton("Gender", "Female")
</div>
これは私のために動作します。
@{ 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
@ 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ファイルに入れることができ、クラスを使用してラジオボタン(チェックボックス)のフォーマットを取得することもできます。