我有一个控制器和一个视图,我想填充一个下拉列表。
我的控制器如下:
namespace AAA.Controllers
{
public class BBBController: Controller
{
[HttpPost]
public ActionResult Sort_Order()
{
List<SelectListItem> liSort = new List<SelectListItem>();
liSort.Add(new SelectListItem() { Text = "--Select--", Value = "0", Selected = true });
liSort.Add(new SelectListItem() { Text = "ASC", Value = "1" });
liSort.Add(new SelectListItem() { Text = "DESC", Value = "2" });
ViewData["ddSort"] = liSort;
return View();
}
}
}
我的视图如下:
@model IEnumerable<AAA.Models.xyz>
@{
ViewBag.Title = "List";
}
<br />
<h2>List</h2>
<table class="table">
<tr>
<th>
Sort order
</th>
</tr>
<tr>
<td>
@using (Html.BeginForm("Sort_Order", "BBB", FormMethod.Post))
{
@Html.DropDownList("Sort", ViewData["ddSort"] as IEnumerable<SelectListItem>, new { @class = "form-control", @style = "width:200px; height:30px" })
}
</td>
</tr>
</table>
运行此命令时出现错误:
没有类型为“ IEnumerable
”的ViewData项目具有键“ Sort”。*
有人可以帮助我,告诉我我做错了什么吗?
答案 0 :(得分:0)
您需要在GET方法中初始化ViewData["ddSort"]
。然后,您可以在视图中使用它。
[HttpGet]
public ActionResult Sort_Order()
{
List<SelectListItem> liSort = new List<SelectListItem>();
liSort.Add(new SelectListItem() { Text = "--Select--", Value = "0", Selected = true });
liSort.Add(new SelectListItem() { Text = "ASC", Value = "1" });
liSort.Add(new SelectListItem() { Text = "DESC", Value = "2" });
ViewData["ddSort"] = liSort;
return View();
}