當我試圖訪問控制器中的下拉值時,我曾經得到這樣的錯誤:"沒有'IEnumerable'型別的ViewData專案,其鍵值為'ddlcontent'"。然后現在的問題是,當我使用下面的當前視圖代碼時,它沒有顯示任何東西。請告訴我,我在哪里遺漏了。
我試著檢查的鏈接是什么?
我嘗試檢查的鏈接是。 沒有'IEnumerable<SelectListItem>'型別的ViewData項具有'CategoryID'的鍵
。擁有鍵值'XXX'的ViewData項是'System.Int32'型別的,但必須是'IEnumerable<SelectListItem>'型別的
。但是到目前為止,他們都沒有幫助。 查看
@model List<DemoWork.Models.Attendance>
@using (Html.BeginForm("TakeDailyAttendance"/span>, "Trainer"/span>, FormMethod.Get))
{
<table align="center">
<tr>
<th>
@Html.Label("事件名稱", htmlAttributes: new { @class = "controll-label" })
@Html.DropDownList("dllcontent",new SelectList(ViewData.Model. Select(x=>x.Subject), ViewBag.dllcontent as SelectList), "-- select --")
</th>
<th>
<div class="col-lg-6">
@Html.Label("StartDate"/span>, "From:"/span>, htmlAttributes: new { @class = "controll-label" })
< input id="startdate" name="startdate" type="date" value keyword">value=" class="form-control">
</div>
<div class="col-lg-6" >
@Html.Label("enddate"/span>, "To:"/span>, htmlAttributes: new { @class = "controll-label" })
< input id="enddate" name="enddate" type="date" value keyword">value=" class="form-control">
</div>
</th>
<th>
<div class="col-md-offset-2 col-md-10" style="margin-top:25px;">
<input type="submit" value="Search" class="btn btn-default" />
</div>
</th>
</tr>
</table>
}
控制器
[HttpGet]
public ActionResult TakeDailyAttendance(string ddlcontent, DateTime? startdate, DateTime? enddate)。
{
var listone = new List<string>()。
var nameqry = from n in db.attendances
select n.Subject;
listone.AddRange(nameqry.Distinct() )。
ViewBag.ddlcontent = new SelectList(listone)。
var tb_teachers = db.Attendances.Where(x => x.StartDate >= startdate && x.EndDate <= enddate && x.Subject. Contains(ddlcontent) && x.Appeal == "Going"/span>).ToList()。
return View(tb_teachers.ToList())。
模型
[Table("Attendance")]
public partial class Attendance
{
public int AttendanceId { get; set; }
[StringLength(50)]
public string TeacherId { get; set; }
[StringLength(50)]
public string FirstName { get; set; }
[StringLength(50)]
public string LastName { get; set; }
[StringLength(50)]
public string IdNumber { get; set; }
[StringLength(200)]
public string EmailId { get; set; }
[StringLength(50)]
public string PhoneNumber { get; set; }
[StringLength(200)]
public string SchoolName { get; set; }
[StringLength(50)]
public string District { get; set; }
[StringLength(50)]
public string Province { get; set; }
public DateTime? Date { get; set; }
public int? EventID { get; set; }
[StringLength(100)]
public string Subject { get; set; }
[StringLength(300)]
public string Description { get; set; }
[StringLength(200)]
public string Location { get; set; }
[Column(TypeName = "date")]
public DateTime? StartDate { get; set; }
[Column(TypeName = "date")]
public DateTime? EndDate { get; set; }
[StringLength(100)]
public string CourseId { get; set; }
[StringLength(50)]
public string AttendaceStatus { get; set; }
[StringLength(50)]
public string Approval { get; set; }
[StringLength(50)]
public string Pin { get; set; }
uj5u.com熱心網友回復:
從asp-net-mvc-dropdown-list-from-selectlist:
你沒有設定什么欄位是Text和Value在 選擇串列本身。這就是為什么它對串列中的每個 物件做一個
.ToString()。你可以認為,鑒于它是一個串列的SelectListItem,它應該足夠聰明來檢測這一點......但它不是。 不是。
所以在你的案例中,你需要將
List<String>轉換為List<SelectListItem>,如下:ViewBag.ddlcontent = new SelectList(listone.Select(i=> new SelectListItem() { Text = i, 值 = i }).ToList(),"Value" , "Text")。)轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/320368.html
標籤:
上一篇:重定向到上一頁而不丟失原始資料
下一篇:將文字與即時價值相比較?
