【问题标题】:asp.net mvc drop down list from viewmodel [duplicate]来自viewmodel的asp.net mvc下拉列表[重复]
【发布时间】:2016-09-09 21:01:33
【问题描述】:

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

型号

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()

【问题讨论】:

标签: c# asp.net-mvc


【解决方案1】:

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

Source code

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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2017-09-17
    • 2020-10-12
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多