如何使用MVC中的模型填充下拉列表

时间:2015-03-25 18:04:13

标签: asp.net-mvc vb.net razor

Function GetStateName() As List(Of SelectListItem)
    Dim ListRoomMaster As List(Of MiscMaster) = New List(Of MiscMaster)
    Dim rm As New MiscMaster
    Using conn As New SqlConnection(connectionString)
        Dim sSql = "Select * From dropdown"

        Dim cmd As SqlCommand = New SqlCommand(sSql, conn)
        conn.Open()
        Dim rst As SqlDataReader = cmd.ExecuteReader
        Do While rst.Read
            rm.m_ddlId = rst!id
            rm.ddlValue = rst!name
            ListRoomMaster.Add(rm)
        Loop
    End Using
    Dim Listxyz = (
        From p In Enumerable.Range(0, 20)
        Select New SelectListItem With {.Text = p.ToString(), .Value = p.ToString()})
Return Listxyz.ToList()
End Function

这是我从控制器调用的GetStateName()的代码在查看之前显示下拉列表有0到19个数字我知道我有想念但是不知道在哪里可以更改大部分代码适用于Linq

这是控制器代码

    Function Index() As ActionResult

        objMisc.StateValue = objMisc.GetStateName()
        'objMisc.StateValue = obj
        Return View(objMisc)
    End Function

我真正想要的是使用查询从DataBase中获取数据 DataBase有如下字段 id |值 1 | XYZ 2 | ABX 3 | KVD

我想填充下拉列表作为xyz,abx,kvd 当选择abx时,我想在数据库中存储2

2 个答案:

答案 0 :(得分:0)

如果您正在使用MVC,那么您也可以直接从模型中的Razor View中获取数据。因为您手动执行SQL查询,这不是MVC的主要内容。

您应该返回模型,然后您可以简单地执行此操作:

@Html.DropDownListFor(m => m.column, Model.dropdown)

答案 1 :(得分:0)

让我们制作几个模型:

 public NameCode(string name)
        {
            Name = name;
            Code = name;
        }

public NameCodeCollection(IEnumerable<NameCodeItem> list) : base(list)
        {
        }

剃须刀:

 @Html.DropDownListFor(m => m.modelid, new SelectList(Model.modeltext, "Name", "Code"))

使用namecodecollection提供下拉列表&amp;从中读取。