【发布时间】:2016-11-12 02:43:08
【问题描述】:
我有一个动态加载一些局部视图的表单,其中一个局部视图将在屏幕中加载多个下拉列表。
我有一个 ViewModel(主体):在主视图中使用
public class CupomFiscalDetalhesViewModel
{
//some properties
public IEnumerable<CupomItensViewModel> CupomItens { get; set; }
}
一个中间ViewModel:局部视图的视图模型:
public class CupomItensViewModel
{
public IEnumerable<TabelaPrecoViewModel> TabelasPreco { get; set; }
public TabelaPrecoViewModel TabelaPrecoSelecionada { get; set; }
}
TabelaPrecos 保存我想在 DropDownList 中显示的值。 TabelaPrecoSelecionada 将保留选定的值。
在Controller中,我习惯把一个IEnumerable的值放到一个ViewBag中,然后用这个ViewBag在HTML中生成下拉列表,像这样:
ViewBag.TabelaPrecoSelecionada = new SelectList
(
detalhesCupomFiscal.CupomItens.FirstOrDefault().TabelasPreco,
"IdTabela",
"NomeTabela"
);
但我不知道如何为CupomItensViewModel 的每个选项生成多个下拉列表,而不将每个下拉列表的选定值的 id 传递给控制器操作(通过参数)。
在 Html 中,我使用:但需要更改名称才能以某种方式进行绑定。
@Html.DropDownList("TabelaPrecoSelecionada",(IEnumerable<SelectListItem>)ViewBag.TabelaPrecoSelecionada,
new { @class = "form-control dropdown" })
有没有人知道如何完成它?
【问题讨论】:
标签: c# asp.net asp.net-mvc