MVC 4-使用型号列表填充DropDownList for
我试图在我的视图中填充dropdownlistfor,但我不知道正确的lambda表达式是否适用。见下面的代码:MVC 4-使用型号列表填充DropDownList for,list,asp.net-mvc-4,lambda,dropdownlistfor,List,Asp.net Mvc 4,Lambda,Dropdownlistfor,我试图在我的视图中填充dropdownlistfor,但我不知道正确的lambda表达式是否适用。见下面的代码: @model Website.Models.modelTeamSelect <h2>MatchSelect.cshtml</h2> @using (Ajax.BeginForm("_PartialTeams", new { model = this.Model }, new AjaxOptions
@model Website.Models.modelTeamSelect
<h2>MatchSelect.cshtml</h2>
@using (Ajax.BeginForm("_PartialTeams",
new
{
model = this.Model
},
new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "divMatchScheduler",
InsertionMode = InsertionMode.Replace
}))
{
<div id="divMatchScheduler">
@Html.LabelFor(m => m.modelMatch.HomeTeam)
@Html.DropDownListFor(m => m.modelMatch.HomeTeam, new SelectList
{
Items = Model.teams.Select(t => t.TeamName)
})
@Html.LabelFor(m => m.modelMatch.AwayTeam)
@Html.LabelFor(m => m.modelMatch.MatchDate)
@Html.TextBoxFor(m => m.modelMatch.MatchDate)
</div>
<input type="submit" value="Add Match" name="btnSubmit" />
}
视图使用的我的模型及其包含的集合
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Website.Models
{
public class modelMatch
{
public Guid MatchID { get; set; }
public Guid AwayTeamID { get; set; }
public string AwayTeam { get; set; }
public Guid HomeTeamID { get; set; }
public string HomeTeam { get; set; }
public DateTime MatchDate { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Website.Models
{
public class modelTeamSelect
{
public modelTeamSelect()
{
teams = new List<modelTeam>();
team = new modelTeam();
modelMatch = new Models.modelMatch();
modelMatches = new List<modelMatch>();
}
public List<modelTeam> teams { get; set; }
public modelTeam team { get; set; }
public modelMatch modelMatch { get; set; }
public List<modelMatch> modelMatches { get; set; }
public string message { get; set; }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
名称空间网站.模型
{
公共类模型匹配
{
公共Guid匹配ID{get;set;}
公共Guid{get;set;}
公共字符串AwayTeam{get;set;}
公共Guid HomeTeamID{get;set;}
公共字符串HomeTeam{get;set;}
公共日期时间匹配日期{get;set;}
}
}
使用制度;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
名称空间网站.模型
{
公共类modelTeamSelect
{
公共modelTeamSelect()
{
团队=新列表();
团队=新模型团队();
modelMatch=新模型。modelMatch();
modelMatches=新列表();
}
公共列表组{get;set;}
公共模型团队{get;set;}
公共modelMatch modelMatch{get;set;}
公共列表模型匹配{get;set;}
公共字符串消息{get;set;}
}
}
摘要
如何使用我的模型中的列表集合填充下拉列表?在大多数情况下,您需要使用
SelectList
填充下拉列表
@Html.DropDownListFor(m => m.modelMatch.HomeTeam, new SelectList(Model.teams, "dataValueField", "dataTextField"))
public static IEnumerable<SelectListItem> ObtenerPais(this HtmlHelper helper)
{
var cnx = new db();
var resultado = cnx.PAIS.ToList()
.Select(e => new SelectListItem
{
Text = e.NOMBRE,
Value = Convert.ToString(e.ID_PAIS)
}).ToList();
//if (Default)
resultado.Insert(0, new SelectListItem
{
Text = "-- Seleccionar --",
Value = ""
});
return resultado;
}
dataValueField
和dataTextField
是您的modelTeam
模型中的属性,将用作下拉列表的值和文本。@{
@{
<br />
ViewBag.TeamList = Model.teams.Select(t => t.TeamName);
<br />
}
<br />
@Html.DropDownListFor(m => m.modelMatch.HomeTeam, ViewBag.TeamList as SelectList)
ViewBag.TeamList=Model.teams.Select(t=>t.TeamName);
}
@Html.DropDownListFor(m=>m.modelMatch.HomeTeam,ViewBag.TeamList作为SelectList)
您还可以创建HtmlHelperExtensions类来绑定下拉列表
@Html.DropDownListFor(m => m.modelMatch.HomeTeam, new SelectList(Model.teams, "dataValueField", "dataTextField"))
public static IEnumerable<SelectListItem> ObtenerPais(this HtmlHelper helper)
{
var cnx = new db();
var resultado = cnx.PAIS.ToList()
.Select(e => new SelectListItem
{
Text = e.NOMBRE,
Value = Convert.ToString(e.ID_PAIS)
}).ToList();
//if (Default)
resultado.Insert(0, new SelectListItem
{
Text = "-- Seleccionar --",
Value = ""
});
return resultado;
}
希望这有帮助谢谢。这就是我想要的。我知道这篇文章很旧,但我想它可能会帮助别人。可以在数据文本字段后添加第三个选项以设置选定值@DropDownListFor(m=>m.modelMatch.HomeTeam,新的SelectList(Model.teams,“dataValueField”,“dataTextField”,“selectedValue”))