我正在做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'的地方 –