使用视图模型使用存储过程完成下拉列表

complete dropdownlist with stored procedure, using viewmodel

美好的一天,感谢您的宝贵时间。 我一直在努力寻找我的问题的答案,但我找不到任何答案。 我正在使用 mvc 下拉列表。我有一个带有存储过程的数据库

Select Id, Name from table

我也有这样的手柄

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

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

首先,您需要定义视图模型:

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

然后,在您的控制器中创建此视图模型,如下所示:

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 标签助手,或 DropDownList html 助手,这是最简单的示例。