在视图中显示下拉列表

时间:2018-09-29 02:04:55

标签: asp.net-mvc asp.net-mvc-4

我正在一个项目中,正在使用HomeController> Index Action方法从数据库表中获取客户端名称。

我想将此列表发送到索引视图,并在下拉列表中显示此列表。

由于我是MVC的新手,请您相应地帮助我使用View。

家庭控制器

public ActionResult Index()
{

var model = from c in 
_mdlCntxtcls.clients
where (DateTime.Now<=c.End_Date)
select c;

return View(model);
}

型号

public class Client
{
public int ClientID { get; set; }
public string Client_Names { get; set; }
public DateTime Start_Date { get; set; }
public DateTime End_Date { get; set; }
}

请尽早提供帮助 谢谢

2 个答案:

答案 0 :(得分:0)

您正在将Client对象的集合传递给视图。因此,应将您的视图强类型化为Client对象的集合,以将其作为(视图)模型数据。

您可以使用DropDownList html helper方法从此视图模型数据中呈现SELECT元素。您可以从此集合(您的页面模型)中创建一个SelectList对象

@model IEnumerable<YourNamespaceHere.Client>
@Html.DropDownList("StudentSelect",new SelectList(Model,"ClientID","Client_Names"))

这将呈现一个名称属性值设置为StudentSelect的SELECT元素。 SELECT元素中的每个选项都将ClientID作为值属性值,将Client_Names属性值作为选项文本。

答案 1 :(得分:0)

您还可以使用viewbag或viewdata从控制器发送客户端发送列表以进行查看,然后将其放入下拉列表中。 在Controller中,您可以像这样使用:

List<SelectListItem> ClientList = new List<SelectListItem>();
using (dbContext db = new dbContext())
{
var Clients = db.Client.ToList();
foreach (var i in Clients)
{
ClientList.Add(new SelectListItem { Text = i.Client_Name, Value = i.ClientID.ToString() });
}
}
ViewBag.ClientList = ClientList;

在视图方面,您可以像这样使用该Viewbag:

@Html.DropDownListFor(x => x.Client, (IEnumerable<SelectListItem>)ViewBag.ClistList)