我正在一个项目中,正在使用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; }
}
请尽早提供帮助 谢谢
答案 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)