我有一个包含2个列表框的视图:Audience&区域设置
我正在尝试向我的控制器提交一个包含所选索引的表单,该控制器具有此签名的操作方法:
public JsonResult Submit(Audience aud, Locale loc)
{
// do stuff
}
我遇到的问题是Audience& Locale有一个ID属性,因此Model Binder对于将所选值分配给它有点困惑。当Audience应该为'2'且Locale应该为'1'
时,两者都被赋值为'1'问题是如何让页面在提交时区分两者?我们已尝试使用“locale。”预先添加Locale的ID值,因此作为数据传递给Controller的参数字符串看起来像
"&locale.id=1&audience.id=2"
但这似乎不起作用。
有什么建议吗?如果需要更多信息,我会提供。
由于
戴夫
答案 0 :(得分: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="" />
答案 1 :(得分:2)
您应该有一个特定的ViewModel,用于将数据导入您的提交操作。该对象应具有AudienceId和LocaleId。创建下拉列表时,您应该使用与您期望的名称相匹配的名称创建它们。