如何在视图中设置多个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无论如何都是在服务器上呈现的,所以这无关紧要。

如何在视图中设置多个MVC下拉列表的选择值,而不需要为每个下拉列表传递唯一的选择列表

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;