私は、フォームのすべてのテキストボックスプロパティを表す厳密に型指定されたオブジェクトを持っています。ラジオボタンはasp.net mvcバインディングとどのように動作しますか
このフォームにラジオボタンを追加する必要があります。それは強く型付けされたオブジェクトにどのようにマッピングされますか?
私は、フォームのすべてのテキストボックスプロパティを表す厳密に型指定されたオブジェクトを持っています。ラジオボタンはasp.net mvcバインディングとどのように動作しますか
このフォームにラジオボタンを追加する必要があります。それは強く型付けされたオブジェクトにどのようにマッピングされますか?
HtmlHelper.RadioButtonを使用している場合は、名前がプロパティ名と一致する限り問題ありません。以下は
は私のプロジェクトの1からのコードの抜粋です:
<span><%= Html.RadioButton("DateFormat", "MMMM/dd/yy", Model.DateFormat.Equals("MMMM/dd/yy"), new Dictionary<string, object> { { "class", "normalwidth" } })%><label class="displayinline"><%=DateTime.Now.ToString("MMMM dd, yyyy")%></label></span>
<span><%= Html.RadioButton("DateFormat", "yyyy/MM/dd", Model.DateFormat.Equals("yyyy/MM/dd"), new Dictionary<string, object> { { "class", "normalwidth" } })%><label class="displayinline"><%=DateTime.Now.ToString("yyyy/MM/dd")%></label></span>
<span><%= Html.RadioButton("DateFormat", "dd/MM/yyyy", Model.DateFormat.Equals("dd/MM/yyyy"), new Dictionary<string, object> { { "class", "normalwidth" } })%><label class="displayinline"><%=DateTime.Now.ToString("dd/MM/yyyy")%></label></span>
<span><%= Html.RadioButton("DateFormat", "", new Dictionary<string, object> { { "class", "normalwidth" } })%><label class="displayinline">custom <%= Html.TextBox("customdate", "", new Dictionary<string, object> { { "style", "width:50px; font-size:12px; display:inline;" } }) %> </label></span>
そしてここでは、レンダリングされたHTMLです。各入力の名前は同じですが、値は異なります。選択されたボタンだけがその値をサーバーにポストバックします。
<p><label>Date Format</label>
<span><input class="normalwidth" id="DateFormat" name="DateFormat" type="radio" value="MMMM/dd/yy" /><label class="displayinline">October 18, 2009</label></span>
<span><input checked="checked" class="normalwidth" id="DateFormat" name="DateFormat" type="radio" value="yyyy/MM/dd" /><label class="displayinline">2009/10/18</label></span>
<span><input class="normalwidth" id="DateFormat" name="DateFormat" type="radio" value="dd/MM/yyyy" /><label class="displayinline">18/10/2009</label></span>
<span><input class="normalwidth" id="DateFormat" name="DateFormat" type="radio" value="" /><label class="displayinline">custom <input id="customdate" name="customdate" style="width:50px; font-size:12px; display:inline;" type="text" value="" /> </label></span>
</p>
そして、あなたのクラスで:
public class Post
{
public string DateFormat {get; set:}
}
@Html.RadioButtonFor(m => m.DateFormat, "MMMM/dd/yy")
@Html.RadioButtonFor(m => m.DateFormat, "yyyy/MM/dd")