我正在做ASP .NET Web應用程序教程作爲項目的一部分,並且我遇到了錯誤消息這篇文章的標題沒有類型爲'IEnumerable <SelectListItem>'的ViewData項目具有關鍵字'SelectedDepartment'
這是工作的罰款之前,我開始與GenericRepository和的UnitOfWork類的工作。我必須在我的Views/Course/Index.cshtml以下注釋掉以下代碼,以便課程頁面能夠正常工作。
@using (Html.BeginForm())
{
@*<p>
Select Department: @Html.DropDownList("SelectedDepartment", "All")
<input type="submit" value="Filter" />
</p>*@
}
現在我有一個ViewResult索引代碼根據教程。
public ViewResult Index()
{
var courses = unitOfWork.CourseRepository.Get(includeProperties: "Department");
return View(courses.ToList());
}
我做庫
public ActionResult Index(int? SelectedDepartment)
{
var departments = db.Departments.OrderBy(q => q.Name).ToList();
ViewBag.SelectedDepartment = new SelectList(departments, "DepartmentID", "Name", SelectedDepartment);
int departmentID = SelectedDepartment.GetValueOrDefault();
IQueryable<Course> courses = db.Courses
.Where(c => !SelectedDepartment.HasValue || c.DepartmentID == departmentID)
.OrderBy(d => d.CourseID)
.Include(d => d.Department);
//var sql = courses.ToString();
return View(courses.ToList());
}
在我CourseController我有一個PopulateDepartmentsDropDownList方法,其中可能需要改變以前出現過此的ActionResult指數方法,但我一直在玩了,但到目前爲止還沒有成功。
private void PopulateDepartmentsDropDownList(object selectedDepartment = null)
{
var departmentsQuery = unitOfWork.DepartmentRepository.Get(orderBy: q => q.OrderBy(d => d.Name));
ViewBag.DepartmentID = new SelectList(departmentsQuery, "DepartmentID", "Name", selectedDepartment);
}
請解決此問題的任何提示。
你可以發佈你的這個視圖的操作方法嗎? 'Index ActionResult'具體爲 –
我有一個ViewResult的Index方法而不是ActionResult。 – Truecolor
所以在ViewResult是你聲明'ViewBag.DepartmentID'的地方 –