Asp.net mvc 4 DropDownlist值作为System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]插入

Asp.net mvc 4 DropDownlist值作为System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]插入,asp.net-mvc-4,drop-down-menu,Asp.net Mvc 4,Drop Down Menu,我试图在db中插入dropdownlist的值,但不是存储它所选的值 存储此值System.Collections.Generic.List1[System.Web.Mvc.SelectListItem]。 这是我的密码。 视图: @Html.DropDownListFor(m=>m.propertyType,(List)ViewData[“property”]) 型号: public string propertyType { get; set; } [HttpGet]

我试图在db中插入dropdownlist的值,但不是存储它所选的值 存储此值
System.Collections.Generic.List1[System.Web.Mvc.SelectListItem]
。 这是我的密码。 视图:

@Html.DropDownListFor(m=>m.propertyType,(List)ViewData[“property”])
型号:

   public string propertyType { get; set; }


    [HttpGet]
    public ActionResult EditProfile()

    {
        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;




        return View();
    }

    [HttpPost]

    public ActionResult EditProfile(EditProfile edit)
    {
        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;
        string UserName = User.Identity.Name;
        var query = from q in Session.Query<Registration>()
                    where q.Email == UserName
                    select q;
        if (query.Count() > 0)
        {
            foreach (var update in query)
            {

                update.contactNo = edit.contactNo;
                update.occupation = ViewData["property"].ToString();
            }
        }
        else ModelState.AddModelError("","");

        Session.SaveChanges();

        return View();
    }
公共字符串属性类型{get;set;}
[HttpGet]
公共操作结果EditProfile()
{
列表项=新列表();
添加(新建SelectListItem{Text=“Private Residence”,Value=“Private Residence”});
添加(新SelectListItem{Text=“Office”,Value=“Office”});
添加(新SelectListItem{Text=“礼拜场所”,Value=“礼拜场所”});
添加(新建SelectListItem{Text=“商业停车场”,Value=“商业停车场”});
添加(新SelectListItem{Text=“Retail”,Value=“Retail”});
添加(新建SelectListItem{Text=“Academic Institution”,Value=“Academic Institution”});
添加(新SelectListItem{Text=“Other”,Value=“Other”});
ViewData[“属性”]=项;
返回视图();
}
[HttpPost]
公共操作结果EditProfile(EditProfile编辑)
{
列表项=新列表();
添加(新建SelectListItem{Text=“Private Residence”,Value=“Private Residence”});
添加(新SelectListItem{Text=“Office”,Value=“Office”});
添加(新SelectListItem{Text=“礼拜场所”,Value=“礼拜场所”});
添加(新建SelectListItem{Text=“商业停车场”,Value=“商业停车场”});
添加(新SelectListItem{Text=“Retail”,Value=“Retail”});
添加(新建SelectListItem{Text=“Academic Institution”,Value=“Academic Institution”});
添加(新SelectListItem{Text=“Other”,Value=“Other”});
ViewData[“属性”]=项;
字符串UserName=User.Identity.Name;
var query=来自会话中的q.query()
其中q.Email==用户名
选择q;
if(query.Count()>0)
{
foreach(查询中的var更新)
{
update.contactNo=edit.contactNo;
update.occulation=ViewData[“property”].ToString();
}
}
else ModelState.addmodeleror(“,”);
Session.SaveChanges();
返回视图();
}

我们将非常感谢您的帮助。谢谢

我总是尽量避免使用ViewData或ViewBag。为此姿势尝试以下操作:

为所有下拉列表创建静态类:

public static class MyDrops
{

public static List<SelectListItem> GetList()
{
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" });
return items;
}
}
这句话很疯狂:

update.occupation = ViewData["property"].ToString();
应该是:

update.occupation = edit.propertyType;

您的“编辑”对象是否获得了正确的值?是的,除此dropdownlist值外,所有编辑对象都获得了正确的值如何访问视图中的MyDrops类?/@Wasfa只需在视图中添加名称空间:使用Projectname.FolderWhere ClassSave我在视图中尝试了使用MvcMembership.Models.MyDrops的方法,但出现了一个错误“MvcMembership.Models.MyDrops”是一种类型,而不是namespace@Wasfa没有我的药水。只是:使用MvcMembership.Models和下拉列表MyDrops.GetList()。MyDrops和GetList()应该是静态的,如我的示例中所示
update.occupation = ViewData["property"].ToString();
update.occupation = edit.propertyType;