[英]Inserting DropDownList value in db
我在db中插入dropdownlist的选定值,但在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();
}
您是否尝试过[更新]:
@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;
投射到列表:
@Html.DropDownListFor(m => m.SpaceType, (List<SelectListItem>)ViewData["property"])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.