这是我的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.
答案 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
。