我有一个包含2列表框一个观点:观众&区域设置模型绑定到多种类型具有相同的属性名
我试图提交包含两者的选择指标到我的控制器,它具有一种形式此签名的动作方法:
public JsonResult Submit(Audience aud, Locale loc)
{
// do stuff
}
时遇到的问题是两个目标对象&区域设置有一个ID属性,所以模型绑定是有点混乱在其上分配选定值。当Audience应该有'2'并且区域设置应该有'1'时,它们都被赋值为'1'。问题是如何让页面在提交时区分两者?我们已经尝试将locale的ID值预先加上“locale。”,所以作为数据传递给Controller的参数字符串看起来像 "&locale.id=1&audience.id=2"
但似乎不起作用。
有什么建议吗?如果需要更多信息,我会提供。
感谢
戴夫
没错这听起来像另一种选择是使用单个ViewModel,并在里面放置两个实体类(如Keith说的),所以它将成为MyViewModel.Audience和MyViewModel.Locale,遵循Luk之前提到的输入元素的名称约定。 – JOBG 2010-02-24 19:17:45
在你的例子中,你明确地指定了前缀。我认为模型活页夹可以推断出这一点? – DaveDev 2010-02-24 21:13:40
@Dave:AFAIK它不会推断,但是这可能在MVC版本之间发生变化。如果你使用了ViewModel类,它可以合理地推断出来。 – LukLed 2010-02-24 21:42:57