2013-10-30 123 views
-1

我需要很大的帮助在这里,我是新来的Asp.net MVC 4应用程序开发,其实我面临的一个问题,当我在我的下拉列表中选择值保存在数据库中,当我点击我的提交按钮。下拉列表中选择值不保存在数据库中

我使用调试指针来检查HTTP post对象中的值,但它不包含dropdownlist选择值它总是显示空值在一个分区原始我需要一些专家的建议来解决这个问题我通过几个例子和尝试几次,但仍然没有适当的解决方案。

模型类:

public partial class tblEmployee 
{ 
    public int EmployeeId { get; set; } 
    public string Title { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    public Nullable<System.DateTime> DateOfBirth { get; set; } 
    public Nullable<System.DateTime> DateOfJoin { get; set; } 

    public string Position { get; set; } 
    public string Office { get; set; } 
    public string Division { get; set; } 

    public Nullable<decimal> Salary { get; set; } 
    public virtual tblDivision Divisions { get; set; } 
} 


public partial class tblDivision 
{ 
    public int value { get; set; } 
    public string Division { get; set; } 
    public Nullable<int> SelectId { get; set; } 
} 

控制器类:

namespace EmpiteHrSystem.Controllers 
{ 
    public class EmployeeController : Controller 
    { 
     private EmpiteContext db = new EmpiteContext(); 

     public ActionResult Create() 
     { 
      ViewBag.DivisionOptions = new SelectList(db.tblDivisions, "value","Division"); 

      return View(); 
     } 

     // 
     // POST: /Employee/Create 

     [HttpPost] 
     public ActionResult Create(tblEmployee tblemployee) 
     { 
      if (ModelState.IsValid) 
      { 
       try 
       { 
        db.Entry(tblemployee).State = EntityState.Added; 

        db.tblEmployees.Add(tblemployee); 
        db.SaveChanges(); 
       } 
       catch (ArgumentException ae) 
       { 
        ModelState.AddModelError("", ae.Message); 

       } 
       return RedirectToAction("Index"); 
      } 
     } 
    } 
} 

查看:

@model EmpiteHrSystem.Models.tblEmployee 
@{ ViewBag.Title = "Create"; Layout = "~/Views/Shared/_Layout.cshtml";} 

@Html.EditorFor(model => model.EmployeeId) 

@Html.ValidationMessageFor(model => model.EmployeeId) 

@using (Html.BeginForm()) { 
@Html.ValidationSummary(true) 

@*@Html.EditorFor(model => model.Office)*@ 

@Html.DropDownList("DivisionOptions") 

@Html.ValidationMessageFor(model => model.Division) 

@Html.ActionLink("Back to List", "Index") 
+0

它真的不清楚问题是什么。哪个值是空的? HTML表单是否包含该值的元素?请具体说明问题描述。 – David

+0

@大卫actaully下拉列表填充从数据库值其已经正确完成的问题是,当我选择下拉列表中的项目,然后点击提交按钮,它不保存在数据库中的下拉列表中选择值来检查这个问题我使用debug点附近创建行动时,我检查tblemployee反对它有科场与空值,但是当我使用EditorFor它已经有数据:( – user2919288

+0

其实我在错误的方式使用下拉列表?或某人知道做这个任务的最佳方式,在另一种技术使用 – user2919288

回答

0

DivisionOptions下拉列表不被束缚回模型正确,因为它是错误的名字。您的模型正在寻找名为,而你的下拉列表被绑定到DivisionOptions的属性。你有几个选择。

  1. 使用强类型的辅助

    @ Html.DropDownListFor(X => x.Division,(的SelectList)ViewBag.DivisionOptions)

  2. 重新命名currrent代码,并传入的SelectList

    @ Html.DropDownList( “除法”,(的SelectList)ViewBag.DivisionOptions)

相关问题