Model view controller 使用viewmodel使用存储过程完成dropdownlist

Model view controller 使用viewmodel使用存储过程完成dropdownlist,model-view-controller,drop-down-menu,viewmodel,procedure,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并在视图中

你好,谢谢你抽出时间。 我一直在为我的问题寻找答案,但我找不到任何答案。 我正在与mvc dropdownlists合作。。我有一个带有存储过程的数据库

Select Id, Name from table
我也有一个这样的控制器

 ` testEntities db = new testEntities();
        var result = db.read().ToList();
        return View();`
请帮助我,因为我需要使用viewmodel并在视图中使用该viewmodel才能获得强类型视图。
非常感谢。

首先,您需要定义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>
最后,您可以在视图中填充它,如下所示:

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>
@model IEnumerable
foreach(模型上的var项目)
{
@项目.案文
}

您还可以使用内置的select标记帮助器或DropDownList html帮助器,这是最简单的示例。

您尚未提供所使用语言、数据库或任何相关框架的任何详细信息。您的标记仅用于一般概念。因此,任何有足够知识的人都不可能找到你的问题并帮助回答。对不起,我是新来的。你的反馈将帮助我提高