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

我正在尝试向我的 Controller 提交一个包含所选索引的表单,该表单具有此签名的操作方法:

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

我遇到的问题是 Audience 和 Locale 都有一个 ID 属性,因此模型绑定(bind)器对将所选值分配给哪个有点困惑。两者都被分配了值 '1',当 Audience 应该有 '2' 并且 Locale 应该有 '1'

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

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

谢谢

戴夫

最佳答案

用:

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="" />

关于asp.net-mvc - 模型绑定(bind)到具有相同属性名称的多个类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2327944/

10-13 07:07