如何在视图中设置多个MVC下拉列表的选择值,而不需要为每个下拉列表传递唯一的选择列表
本文关键字:下拉列表 选择 不需要 列表 唯一 视图 设置 MVC | 更新日期: 2023-09-27 18:13:30
在我的视图模型我有很多行。我需要用户从下拉列表中为每一行选择一个雇员。要选择的员工列表对于每一行都是相同的,如下所示:
@foreach(var item in Model.Rows)
{
@Html.DropDownListFor(m => item.EmployeeID, Model.EmployeeSelectList, "-- Choose --", new {id = "employee_" + item.ID })
...
}
,模型看起来像这样:
public class TheViewModel
{
public SelectList EmployeeSelectList {get;set;}
public List<Row> Rows {get;set;}
}
我真的需要有我的SelectList在我的行类,而不是能够设置所选的值,而不使用javascript或我错过了什么?
问这个问题的原因是,发送到客户端的冗余数据量将会很大。
正如我在下面的评论中指出的那样,HTML无论如何都是在服务器上呈现的,所以这无关紧要。
jarvanJiang帮助我澄清了这一点,正如你在问题下面的对话中看到的那样。谢谢你!
答案是:不可能。
这是因为这并不重要,因为所有的HTML都是在服务器上呈现的。并且在发送到客户端时,每行都有带有其所有标记的。此时,它不再是多余的数据,它只是屏幕。
尝试在模型中添加额外的属性,您可以在那里获得ddl选择的值!
@Html.DropDownListFor(m => **Model.SelectedValue**, Model.EmployeeSelectList, "-- Choose --", new {id = "employee_" + item.ID })
...
public class TheViewModel
{
public SelectList EmployeeSelectList {get;set;}
public List<Row> Rows {get;set;}
**public int SelectedValue{get;set;}**
}
现在你在下拉菜单中选择任何值,这些值已经添加到
的SelectedValue
属性中控制器int selvalue=yourModelObject.SelectedValue;