【问题标题】:ASP.Net MVC3 ViewModel with Radio Button not working带有单选按钮的 ASP.Net MVC3 ViewModel 不起作用
【发布时间】:2012-12-19 14:10:58
【问题描述】:

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

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

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

复选框

剃刀代码

 @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.

【问题讨论】:

  • 出于好奇,你为什么使用Html.CheckBox helper 而不是Html.CheckBoxFor helper(收音机也是如此)?
  • 我尝试使用 CheckBoxFor 并查看
  • @BradChristie,我正在使用集合 IEnumarable 是我视图的模型属性。我正在遍历每个并构建。那么在这种情况下,我该如何使用 CheckBoxFor?有可能吗?
  • @for (Int32 i = 0; i &lt; Model.Count(); i++) { @html.CheckBoxFor(x =&gt; Model[i].Isselected) } 将是一种方式(保留索引)。
  • 请放控制器源码

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


【解决方案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。这对浏览器说“如果用户选择此单选按钮,请将值 true 发送到服务器”。

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

【讨论】:

    猜你喜欢
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多