MVC下拉列表

时间:2013-03-19 14:20:56

标签: c# asp.net-mvc linq

如何使用C#中的linq和MVC模型从SQL Server数据库填充@ HTML.dropdownlist或@ HTML.dropdownlistfor?我见过很多使用ViewData的例子,但我想使用模型。我认为我的挂断是将数据从数据库中获取到可以在视图中使用的列表中。

我需要一个简单而详细的例子。

谢谢!

2 个答案:

答案 0 :(得分:0)

我试图让你成为一个有三个模式

的演员的样本

查看

<%= Html.DropDownList("YourControl", Model.YourSource)%>

控制器

IEnumerable<YourEntity> result =
                            from item in GetListSample()
                            select new YourEntity
                            {
                                Text = item.Name,
                                Value = item.Value
                            };
  model.YourSource= result;

模型

public class YourModel
{
    public IEnumerable<YourEntity> YourSource{ get; set; }
}

注意:创建视图时,必须在视图中注入模型

答案 1 :(得分:0)

我没有sql的示例,但我可以帮助您渲染到具有MVC的页面

控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TestPortal.Areas.JB.Controllers
{
    public class ExampleController : Controller
    {
        //
        // GET: /JB/Example/

        public ActionResult Index()
        {
            Models.Example.ExampleIndex output = new Models.Example.ExampleIndex();
            output.DropDownData.Add(new SelectListItem()
            {
                Text = "One",
                Value = "1"
            });

            output.DropDownData.Add(new SelectListItem()
            {
                Text = "Two",
                Value = "2"
            });


            return View(output);
        } 

    }
}

ExampleIndex.cs:请注意,构建视图模型以将数据传递给视图

始终是一件好事
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TestPortal.Areas.JB.Models.Example
{
    public class ExampleIndex
    {
        public ExampleIndex()
        {
            this.DropDownData = new List<SelectListItem>();
        }

        public List<SelectListItem> DropDownData
        {
            get;
            set;
        }
    }
}

Index.cshtml:

@model TestPortal.Areas.JB.Models.Example.ExampleIndex

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>


@Html.RFSSelect("DropDownId", Model.DropDownData)