2009-10-18 31 views
7

工作,我有一个强类型的对象,表示所有形式的文本框的属性,当我张贴到控制器正常工作。怎么办单选按钮与asp.net的MVC结合

我现在需要一个单选按钮添加到该表单。它如何映射到强类型对象?

回答

10

如果使用HtmlHelper.RadioButton你会被罚款,只要你的名字属性名相匹配。

下面的代码来自我的一个项目一个片段:

<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:} 
} 
1
@Html.RadioButtonFor(m => m.DateFormat, "MMMM/dd/yy") 
@Html.RadioButtonFor(m => m.DateFormat, "yyyy/MM/dd")