获取下拉信息并进入数据库

时间:2015-07-22 21:31:40

标签: c# asp.net-mvc

我有一个下拉列表和一些我应该扔进数据库的信息,

现在给我一个错误:

  

名称' ddlRoles'在当前上下文中不存在

我的代码: - brugere.fk_role是我需要得到的"去"到数据库。

KontoController.cs

brugere.Fk_role = Convert.ToInt32(ddlRoles);

Opret.cshtml

@Html.DropDownList("ddlRoles",
new SelectList(Model.Roles, "Id", "Name"), "Vælg",
new { @class = "form-control input-lg" })

怎么可能需要"我的"值进入kontocontroller.cs

这样我必须拥有从下拉到数据库的值,所以我只会说出来并查看/进入数据库。

EIDT UPDATE!

Kontocontroller.cs

// GET: Konto/Opretbruger
    public ActionResult Opret()
    {

        Opret newopret = new Opret();
        newopret.User = new User();
        newopret.Sexs = db.Sexes.ToList();//henter de to "køn"
        newopret.Roles = db.Roles.Where(z => z.id >= 6).ToList();//Tag to alle "ranks" efter id 6 eller =
        newopret.Professionals = db.Professionals.ToList(); //Hvilke slags hjælp kan man få
        newopret.Areas = db.Areas.ToList();//hvilke område kommer man fra

        return View(newopret);//viser indhold frem på siden.
    }


    //opret brugere i databasen i user tablen. Det er de oplysning database skal have ind i første om gang.
    //Det vil sige at den skal lige det ind i databasen
    [HttpPost]
    public ActionResult CreateUsers(OpretBrugere brugere)
    {
        if (ModelState.IsValid)
        {
            //Tjekker op på om der findes en brugere med den email.
            var CreateAnAccount = db.Users.FirstOrDefault(b => b.Email == brugere.Email);
            if(CreateAnAccount != null)
            {

                brugere.Email = hello; //<--- Information fra textbox here
                brugere.PasswordHash = hello; //<--- Information fra textbox here
                brugere.FirstName = hello; //<--- Information fra textbox here
                brugere.LastName = hello; //<--- Information fra textbox here

                //true - False
                brugere.Newsletter = hello;  //<--- Information fra checkbox here

                brugere.Fk_role = Convert.ToInt32(ddlRoles); //Det er her problemet e rb
                brugere.Fk_sex = Convert.ToInt32(ddlSexs);
                brugere.Fk_area = Convert.ToInt32(ddlAreas);
                brugere.Fk_professional = Convert.ToInt32(ddlProfessionals);

                //age
                brugere.age = hello;  //<--- Information fra textbox her

                //img users
                brugere.img = "userimg.png";

                brugere.creatadate = DateTime.Now;

                //Skal finde ud af hvilke role man har valgt,
                if(brugere.Fk_role == 6)
                {
                    //Hvis man er Mentor, skal man ikke have adgang til siden endnu!
                    brugere.Approved = false;
                }
                else
                {
                    //Er man Alm brugere eller Forældre så har man adgang til site.
                    brugere.Approved = true;
                }

                //skal lige indhold ind i databasen.
                db.Users.InsertOnSubmit(brugere); 

                //skal gemme indholdet.
                db.SubmitChanges(); // save

                //sende person til log in siden.

            }
            else
            {
                //Fremviser en fejl besked hvis der findes en email.
                ViewBag.MessageError = "Denne brugere findes i vores system.";
            }
        }
        //return indhold til siden.
        return View();
    }

1 个答案:

答案 0 :(得分:0)

正在创建您的下拉框,其中包含您的模型中不存在的ID /名称(OpretBrugere)。 ddlRoles甚至无法定义(您已经展示过),因此代码甚至无法编译。

您可能想要添加一个&#34;所选角色&#34;属性到您的模型,并将下拉列表绑定到它,以便与发布数据一起发送。

添加到OpretBrugere

public string SelectedRole { get; set; }

然后在视图中更改下拉列表的渲染:

@Html.DropDownListFor(m => m.SelectedRole, 
    new SelectList(Model.Roles, "Id", "Name"), "Vælg",
    new { @class = "form-control input-lg" })

然后在你的帖子中:

brugere.Fk_role = Convert.ToInt32(brugere.SelectedRole);