MVC模型绑定限制

时间:2010-10-17 09:36:20

标签: asp.net-mvc binding model

我对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; }
}

我有一个控制器将一组人员传递给一个视图,在该视图中我想渲染一个单选按钮,允许用户从人员集合中选择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强制所有单选按钮在选中一个时关闭,但这似乎是一个'软糖'!

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这里的诀窍是你要完成的任务并不是模型绑定的真正任务,它可能不会真正意识到它之外的数据“行”。你想要做的是为引导乘客选择引入一个新的领域,将值绑定到人的唯一标识符和同名的名称。然后将其作为控制器中的单独变量进行拾取并从那里映射。