我在db中插入了下拉列表的选定值,但是它给出了我在dropdownlist帮助器所在位置的错误。没有类型为'IEnumerable'的ViewData项具有键'SpaceType'。 型号:
public class AddSpace
{
public string SpaceType { get; set; }
}
查看:
@Html.DropDownListFor(m => m.SpaceType, (IEnumerable<SelectListItem>)ViewData["property"])
控制器
[HttpGet]
public ActionResult AddSpace()
{
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem { Text = "Private Residence", Value = "Private Residence" });
items.Add(new SelectListItem { Text = "Office", Value = "Office" });
items.Add(new SelectListItem { Text = "Place of worship", Value = "Place of worship" });
items.Add(new SelectListItem { Text = "Commercial Parking lot", Value = "Commercial Parking lot" });
items.Add(new SelectListItem { Text = "Retail", Value = "Retail" });
items.Add(new SelectListItem { Text = "Academic Institution", Value = "Academic Institution" });
items.Add(new SelectListItem { Text = "Other", Value = "Other" });
ViewData["property"] = items;
}
[HttpPost]
public ActionResult AddSpace(AddSpace adspace)
{
if (ModelState.IsValid)
{
string userName = "wasfa_anjum@yahoo.com";
var query = from q in Session.Query<Registration>()
where q.Email == userName
select q;
Session.Store(adspace);
Session.SaveChanges();
}
else ModelState.AddModelError("","Please Correct the errors to continue");
return View();
}
答案 0 :(得分:0)
您是否尝试过[已更新]:
@Html.DropDownList("SpaceTypes", ViewData["property"] as SelectList)
此外,在:
之后items.Add(new SelectListItem { Text = "Other", Value = "Other" });
您可能需要添加:
items.Add(new SelectListItem { Text = "Other", Value = "Other" }, "Text", "Value", 1);
[加入] 或者,你也应该这样写它:
var items = new SelectList(new[]
new { Text = "Private Residence", Value = "Private Residence" },
new { Text = "Office", Value = "Office" },
new { Text = "Place of worship", Value = "Place of worship" },
new { Text = "Commercial Parking lot", Value = "Commercial Parking lot" },
new { Text = "Retail", Value = "Retail" },
new { Text = "Academic Institution", Value = "Academic Institution" },
new { Text = "Other", Value = "Other" },
"Text", "Value", 1);
ViewData["property"] = items;
答案 1 :(得分:0)
转换为列表:
@Html.DropDownListFor(m => m.SpaceType, (List<SelectListItem>)ViewData["property"])