MVC学习遇到的错误
控制器:
public ActionResult Release()
{
ICategoryService Cser = ServiceBuilder.BuildCategoryService();
IList<CategoryInfo> Categorys = Cser.GetAll();
ViewData["Categorys"] = new SelectList(Categorys, "ID", "Name");
return View();
}
页面:
<h1>MVC公告发布系统——发布公告</h1>
<% Html.BeginForm("DoRelease","Announce",FormMethod.Post); %>
<dl>
<dt>标题:</dt>
<dd><%= Html.TextBox("Title") %></dd>
<dt>分类:</dt>
<dd><%= Html.DropDownList("Category", categories)%></dd>
<dt>内容:</dt>
<dd><%= Html.TextArea("Content") %></dd>
</dl>
<input type="submit" value="发布" />
<% Html.EndForm(); %>
错误:
不存在具有键“Category”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 不存在具有键“Category”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
源错误:
行 17: <dd><%= Html.TextBox("Title") %></dd>
行 18: <dt>分类:</dt>
行 19: <dd><%= Html.DropDownList("Category", categories)%></dd>
行 20: <dt>内容:</dt>
行 21: <dd><%= Html.TextArea("Content") %></dd>
------解决方案--------------------<dd><%= Html.DropDownList("Category", categories)%></dd>
Category修改为Categorys试试
------解决方案--------------------<dd><%= Html.DropDownList("Category", categories)%></dd>
Category修改为Categorys试试
------解决方案--------------------
为什么不用后台的ViewData来绑定Dropdownlist呢?奇怪,你是不是刚学mvc?
<dd><%= Html.DropDownList("Category", ViewData["Categorys"] as SelectList)%></dd>
------解决方案--------------------<h1>MVC公告发布系统——发布公告</h1>
<% Html.BeginForm("DoRelease","Announce",FormMethod.Post); %>
<dl>
<dt>标题:</dt>
<dd><%= Html.TextBox("Title") %></dd>
<dt>分类:</dt>
<dd><%= Html.DropDownList("Category", viewdata["Categorys"] as SelectList)%></dd>
<dt>内容:</dt>
<dd><%= Html.TextArea("Content") %></dd>
</dl>
<input type="submit" value="发布" />
<% Html.EndForm(); %>