我有一个显示问题网格/表格的应用程序,每个问题都有一个状态下拉菜单。大约有1-200个问题,每个状态下拉菜单有大约50个选项,这些选项对于网格的每一行都是相同的。
我的控制器将以下模型传递给一个视图:
IEnumerable<Question.Grid>然后,在我的视图中,我有以下代码来打印网格表的细节行:
<tbody class="grid">
@if (Model != null) {
foreach (var item in Model) {
@Html.DisplayFor(model => item, "QuestionDetail")
}
}
</tbody>每条网格线都有一个status下拉列表,我希望将该下拉列表的数据(每行都相同)传递给QuestionDetail视图。发送此附加信息的最佳方式是什么,以便在我看来,我可以拥有以下内容:
@Html.DropDownList("Question.Status", Status, new { id = "StatusID"})发布于 2012-08-14 10:15:41
首先,不要传递视图模型的IENumerable。而是定义一个属性为IEnumerable的对象,如下所示:
public class EnumViewModel
{
public IEnumerable<Question.Grid> Questions { get; set; }
public int MyAdditionalFieldIWantedToPassAlong { get; set; }
}
public class Question.Grid
{
public string MyExistingFields { get; set; }
// as many as you had
public string MyAdditionalFields { get; set; }
// as much as you want
}并让视图接收一个模型,而不是@model EnumViewModel形式的模型列表。在这一点上,如果这些信息属于EnumViewModel,那么您可以很容易地在其中添加任何您喜欢的附加信息。如果问题更具体,就把它放在那里,然后在包含该StatusID的列表中的每个模型中享受你的项目。
可以将其视为,它只是一个容器,用于保存视图所需的数据
希望这能有所帮助。
https://stackoverflow.com/questions/11943736
复制相似问题