3

在我的视图模型中,我有很多行。我需要用户从每一行的下拉列表中选择一个员工。每行可供选择的员工列表都是相同的,如下所示:

@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;}
}

我是否真的需要在我的 Row 类中使用我的 SelectList 才能在不使用 javascript 的情况下设置所选值,或者我错过了什么?

问这个问题的原因当然是发送给客户端的冗余数据量会很多。

正如在下面的评论中向我指出的那样,HTML 无论如何都会在服务器上呈现,所以没关系。

4

2 回答 2

0

正如您在问题下方的对话中所见,jarvanJiang 帮助我向我澄清了这一点。谢谢!

答案是:不可能。

这是因为它无关紧要,因为无论如何所有的 HTML 都是在服务器上呈现的。当它们被发送到客户端时,每一行都有它的所有标签。这时候已经不是多余的数据了,只是屏幕而已。

于 2013-05-14T08:01:27.173 回答
-1

试试这个在你的模型中添加额外的属性,你可以在那里得到 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;
于 2013-05-14T06:32:21.013 回答