视图模型中的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()
我创建了示例并在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)