【问题标题】:ASP.NEТ MVC 5 checkbox/radio buttons binding in actionASP.NEТ MVC 5 复选框/单选按钮绑定在行动
【发布时间】:2018-11-01 11:25:21
【问题描述】:

我已经搜索 google/SO 很长时间了。而且我没有找到合适的答案。我的问题很简单。如何将单选按钮或选中的复选框绑定到我的操作。

没有 HTML 助手(我认为大多数人都使用单选按钮和复选框助手,因为他们实际上并不知道它们是如何工作的,并且会用心使用它们)。

简单示例:

<input type="checkbox" id="foo" name="foo" value="1" checked>
<input type="checkbox" id="foo2" name="foo" value="2">
<input type="checkbox" id="foo3" name="foo" value="3">

<input type="radio" id="male" name="foo10" value="male">
<input type="radio" id="female" name="foo10" value="female">

我阅读了许多使用内部具有 IsChecked 属性的对象的示例。我只想在我的操作中使用这样的视图模型:

public class FooViewModel {
    public int ChosenRadioButtonId {get;set;}

    public List<int> ChosenCheckboxes {get; set;}
}

(PS: 不知道是不是我记错了但是那些帮手生成的缺陷html——重复ids,每个人都知道一个id只能使用ONCE的基本HTML原则)

【问题讨论】:

  • 为什么不直接使用为您执行此操作的内置方法,以节省您和其他人的时间?
  • 您可以使用 htmlhelper 并为每个设置 ID!无论如何,您的复选框有不同的名称,并且视图模型中只有一个列表!所以你肯定不能以这种方式绑定值
  • @TJWolschon 如果前端女孩已经设置了 css、javascripts 等我不想将 设置为 helpers 怎么办?
  • @ElyasEsna ops 抱歉打错了,我会马上修正它.. 无论如何问题仍然存在
  • 我看不出前端 css 和 javascript 如何影响您的后端标签生成?您可以将 css 类、ID、名称、任何您想要的属性添加到 html 帮助器。

标签: c# asp.net asp.net-mvc asp.net-mvc-5 model-binding


【解决方案1】:

复选框的名称应与 ViewModel 中的名称完全相同,因此如果要将它们绑定到列表,请尝试将名称更改为 ChosenCheckboxes[]

【讨论】:

    猜你喜欢
    • 2011-07-20
    • 2013-10-03
    • 2013-09-30
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 2011-11-15
    • 2011-09-09
    相关资源
    最近更新 更多