使用viewmodel完成包含存储过程的下拉列表

时间:2016-04-13 22:36:47

标签: model-view-controller drop-down-menu viewmodel procedure

美好的一天,谢谢你的时间。 我一直在努力寻找我的问题的答案,但我无法得到任何答案。 我正在使用mvc dropdownlists ..我有一个带存储过程的数据库

Select Id, Name from table

我也有像这样的控制器

 ` testEntities db = new testEntities();
        var result = db.read().ToList();
        return View();`

请帮助我,因为我需要使用viewmodel并在视图中使用该viewmodel以获得强类型视图。 非常感谢。

1 个答案:

答案 0 :(得分:0)

首先,您需要定义viewmodel:

public class TestEntityViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

然后,在控制器中创建此viewmodel,如下所示:

testEntities db = new testEntities();
var result = db.read().ToList();
var viewModels = result.Select(x => new SelectListItem(){ Value = x.Id, Text = x.Name);
return View(viewModels);

最后,您可以在视图中填充它,如下所示:

@model IEnumerable<SelectListItem>

<select>
foreach (var item on Model)
{
    <option value="@item.Value">@item.Text</option>
}
</select>

你也可以使用内置的select标签helper或DropDownList html helper,这是最简单的例子。