3

我有一个包含 2 个列表框的视图:Audience & Locale

我正在尝试将包含两者的选定索引的表单提交给我的控制器,该控制器具有此签名的操作方法:

public JsonResult Submit(Audience aud, Locale loc)
{
// do stuff
}

我遇到的问题是 Audience 和 Locale 都有一个 ID 属性,因此 Model Binder 对于将选定值分配给哪个有点困惑。当 Audience 应该有 '2' 并且 Locale 应该有 '1' 时,两者都被分配了值'1'

问题是如何让页面在提交时区分两者?我们已经尝试在 Locale 的 ID 值前面加上“locale.”,所以作为数据传递给 Controller 的参数字符串看起来像这样 "&locale.id=1&audience.id=2",但这似乎不起作用。

有什么建议么?如果需要更多信息,我会提供。

谢谢

戴夫

4

2 回答 2

3

利用:

public JsonResult Submit([Bind(Prefix = "audience")]Audience aud,[Bind(Prefix = "locale")]Locale loc)
{
// do stuff
}

每个 Audience 字段在 html 字段中的名称中都应该有“audience”前缀:audience.id,audience.name,...

<input id="audience_name" name="audience.Name" type="text" value="" />
于 2010-02-24T18:16:20.120 回答
2

您应该有一个特定的 ViewModel 用于将数据带入您的提交操作。该对象应具有 AudienceId 和 LocaleId。当您创建下拉列表时,您应该使用与您期望的名称相匹配的名称来创建它们。

于 2010-02-24T17:16:43.447 回答