带有单选按钮的ASP.Net MVC3 ViewModel无法正常工作

时间:2012-12-19 14:10:59

标签: asp.net-mvc asp.net-mvc-3

这是我的ViewModel类,我用单选按钮和复选框绑定

public class MyListViewModel
{
    public bool Isselected { get; set; }
    public Int32 ID { get; set; }      
    public string EmpName { get; set; }

}

问题: 对于控制器类中的复选框,如果选择,我可以看到带绑定模型的IsSelected属性为true。但是在单选按钮的情况下,它总是显示错误。任何帮助表示赞赏

复选框

剃刀代码

 @Html.CheckBox(myListObj.Isselected.ToString(), myListObj.Isselected, 
  new { id = myListObj.Isselected.ToString() })

制作HTML

 <input type="checkbox" value="true" name="myListObj[0].Isselected" id="22">
 <input type="hidden" value="false" name="myListObj[0].Isselected">

单选按钮

剃刀:

 @Html.RadioButton(myListObj.Isselected.ToString(), myListObj.ID, 
 myListObj.Isselected, new { id = myListObj.Isselected.ToString() }) 

HTML:

<input type="radio" value="6"
 name="myListObj[0].Isselected" id="myListObj[0].Isselected">

这可能是什么问题?

Edited: 
What could be the code for binding a model with multiselect radio button. 
I mean user can select more than one Employee from a list. 
I want to know what are the employees selected with the help of Model Binding 
class with the property IsSelected. Please suggest me the possible way.

1 个答案:

答案 0 :(得分:1)

单选按钮的value属性是发送到服务器的内容,因此在这种情况下,值6正在发送,但服务器无法保持6 } Isselected b / c Isselected的类型为boolean

您需要将html更改为此

@Html.RadioButton(myListObj.Isselected.ToString(), true, myListObj.Isselected, new { id = myListObj.Isselected.ToString() })

请注意我将myListObj.ID更改为true的方式。这告诉浏览器&#34;如果用户选择此单选按钮,则将值true发送到服务器&#34;。

或者,您可以将Isselected更改为double?并继续使用ID值。这样,如果未选择单选按钮,服务器将看到null;如果选中,服务器将看到6