【发布时间】:2010-10-17 09:36:20
【问题描述】:
我有一个关于 MVC 中的模型绑定的问题
假设我有一个像下面这样的简单 POCO。
public class Person
{
public Title Title { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool LeadPassenger { get; set; }
}
我有一个控制器,它将一组 Persons 传递给一个 View,我想在该 View 中呈现一个单选按钮,以允许用户从 Persons 集合中选择 LeadPassenger。
现在,要使其正常工作(一次只能选择一个单选按钮),所有“LeadPassenger”单选按钮必须具有相同的名称。但这似乎是不可能使用模型绑定约定的,其中每个控件都以集合中项目的每个属性命名。
<input id="Passengers_0_LeadPassenger " name="PolicyMembers[0].LeadPassenger" type="radio" value="true" />
<input id="Passengers_1_LeadPassenger " name="PolicyMembers[1].LeadPassenger" type="radio" value="false" />
如何绕过这个限制?我可以使用 jQuery 强制所有单选按钮在被选中时关闭,但这似乎是一种“软糖”!
有什么想法吗?
【问题讨论】:
-
如果您使用
Html.RadioButton(),这将自动为您完成。 :) -
嗨,bzlm。你是对的。但是,如果我使用 Html.RadioButton(),那么在提交表单时,我不会获得 Person 对象上 LeadPassenger 属性的模型绑定。
标签: asp.net-mvc binding model