简体   繁体   English

在数据库中插入DropDownList值

[英]Inserting DropDownList value in db

I am inserting selected value of drop downlist in db but it is giving me error in view where the dropdownlist helper is. 我在db中插入dropdownlist的选定值,但在dropdownlist助手所在的视图中却给了我错误。 There is no ViewData item of type 'IEnumerable' that has the key 'SpaceType'. 没有类型为“ IEnumerable”的ViewData项目具有键“ SpaceType”。 Model: 模型:

        public class AddSpace
        {
             public string SpaceType { get; set; }
        }

View: 视图:

        @Html.DropDownListFor(m => m.SpaceType,  (IEnumerable<SelectListItem>)ViewData["property"])

Controller 控制者

    [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();
    }

Have you tried [updated]: 您是否尝试过[更新]:

@Html.DropDownList("SpaceTypes", ViewData["property"] as SelectList)

Also, after: 此外,之后:

items.Add(new SelectListItem { Text = "Other", Value = "Other" });

You'll probably need to add: 您可能需要添加:

items.Add(new SelectListItem { Text = "Other", Value = "Other" }, "Text", "Value", 1);

[added] Optionally, you should be able to write it like this also: [添加](可选),您应该也可以像这样编写它:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM