视图模型中的Asp.net MVC下拉列表

本文关键字:net MVC 下拉列表 Asp 模型 视图 | 更新日期: 2023-09-27 18:06:21

我希望从数据来自数据库的视图模型填充下拉列表。以下是我的项目的简写:

模型
public partial class Model1
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Model2——这将是填充下拉列表的信息

public partial class Model2
{
   public string typeID { get; set; }
   public string typeValue { get; set; }
}

这两个模型然后连接到一个ViewModel。

视图模型

public class viewModel
{
    public Model1 Model1s { get; set; }
    public Model2 Model2s { get; set; }
}

此时我无法使用视图模型创建下拉列表。我在这个网站上梳理了大约50个例子,但我不能让我的工作。我知道视图包含如下内容:

@Html.DropDownListFor(m => m.MarketingCampaign , new SelectList(Model.MarketingCampaignType, "CampaignTypeTitle", "CampaignTypeId"), new { id = "yourElementIdIfAny", @class = "yourClassNameIfAny" })
需要

。我还试图直接将值和文本输入到模型中的字段中,这样我就可以轻松地从传递回控制器的模型中提取信息,而不是使用此方法:

ViewBag.DropDownList = dbContext.Model2.ToList();

,并通过返回表单获取信息,使用:

string value = form["DropDownList"].ToString()

视图模型中的Asp.net MVC下拉列表

我创建了示例并在Github中上传

源代码
public ActionResult Index()
    {
        //IsName >> Is name DropDownList
        //typeID >> Is data value
        //typeValue >> Is data text
        ViewBag.IsName = new SelectList(_dbContext.Model2.ToList(), "typeID", "typeValue");
        return View();
    }
    public ActionResult ByViewModel()
    {
        List<ViewModel> items = _dbContext.Model2.Select(m => new ViewModel()
        {
            typeID = m.typeID,
            typeValue = m.typeValue
        }).ToList();
        //IsName >> Is name DropDownList
        //typeID >> Is data value
        //typeValue >> Is data text
        ViewBag.IsName = new SelectList(items, "typeID", "typeValue");
        return View();
    }

@Html.DropDownList (IsName)