开发者

how can get data in drop down list from data base in mvc3.?

I am designing a simple webpage using MVC3 in asp.net. I prepared a database using Sql Server, and i have attached this database in App_Data. There is a table employee in that database.

i want to get name of employee in a drop down list. s开发者_运维问答o i can select name of employee.

so please suggest me what will be model,view and controller code for accessing employee name in drop down list.


I would start by designing a view model which will hold the data:

public class EmployeeViewModel
{
    public string SelectedEmployeeName { get; set; }
    public IEnumerable<SelectListItem> Employees { get; set; }
}

then a controller:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        IEnumerable<Employee> employees = GetEmployeesFromDb();
        var model = new EmployeeViewModel
        {
            Employees = employees.Select(x => new SelectListItem
            {
                Value = x.Name,
                Text = x.Name
            })
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(EmployeeViewModel model)
    {
        return Content("Selected employee name: " + model.SelectedEmployeeName, "text/plain");
    }
}

and finally the strongly typed view:

@model EmployeeViewModel
@using (Html.BeginForm())
{
    @Html.DropDownListFor(
        x => x.SelectedEmployeeName,
        new SelectList(Model.Employees, "Value", "Text")
    )
    <input type="submit" value="OK" />
}


1) Create a Method to populate the list from DB

2) Set a ViewModel to hold the List and selected value

//MODEL

 public List<SelectListItem> CategoriesSelectList()
            {

                var query = from c in _yourRepository.GetAll()
                            select c;

                List<SelectListItem> obj = new List<SelectListItem>();

                foreach (var item in query)
                {

                    var result = new SelectListItem();
                    result.Text = item.name;
                    result.Value = item.id.ToString();
                    obj.Add(result);

                }
                return obj;
            }

//VIEWMODEL

public class ViewModel
{
 [DisplayName("Category")]
        public int categoryId { get; set; }
        public List<SelectListItem> CategoryList()
        {
            return new Model().CategoriesSelectList();
        }
}

//CONTROLLER

public ActionResult Create()
        {
            //set the id for the VIEWMODEL property, if necesary
            var e = new ViewModel();
            e.categoryId = 1;//set the selected value

            return View(e);
        }

//VIEW

<div class="editor-label">
    <%: Html.LabelFor(model => model.categoryId) %>
</div>
<div class="editor-field">
    <%: Html.DropDownListFor(model => model.categoryId,Model.CategoryList()) %>
    <%: Html.ValidationMessageFor(model => model.categoryId) %>
</div>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜