0

我想使用mvc4中的存储过程将数据库的列值绑定到下拉列表我不知道如何处理这个.plz帮助我

我的模型代码是这样的

 public class dropdown
{
    string conn = System.Configuration.ConfigurationManager.ConnectionStrings["cnstr"].ConnectionString;
    [Required(ErrorMessage = "DomainName is Required")]
    [Display(Name = "DomainName")]
    public string DomainName { get; set; }
    public IEnumerable<dropdown> obj { get; set; }

    public List<dropdown> LoadDomain(dropdown model)
    {
        List<dropdown> obj = new List<dropdown>();
        using (SqlConnection con = new SqlConnection(conn))
        {

            try
            {
                con.Open();
                SqlCommand cmd = new SqlCommand("selectDomainName", con);
                cmd.CommandType = CommandType.StoredProcedure;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
                for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
                {
                    var data = new dropdown();
                    data.DomainName = ds.Tables[0].Rows[i]["DomainName"].ToString();
                    obj.Add(data);
                }
            }
            catch
            {
            }
        }
        return obj;

obj我得到所有列值

我的控制器代码

 public ActionResult binddropdown(dropdown model1)
    {

            var x = model1.LoadDomain(model1);

            ViewData. = x;

            return View(model1);

    }

我不知道我是否会朝着这个方向前进。我是初学者,所以请建议我。

4

1 回答 1

2

您可以在 viewbag 中设置您的数据,然后在前端您可以循环浏览数据并将值分配给您的下拉框。在这里你可以做的是,

public ActionResult binddropdown(dropdown model1)
{
        var x = model1.LoadDomain(model1);
        viewbag.MyData = x;
        return View();
}

在前端,您可以从 viewbag 获取数据(如果需要,使用 typecast 转换为适当的类型)并可以像这样分配给 html 标签,

   @{
 var a = (yourobjtypecast) viewbag.MyData ;
<select name="drpId" id="drpId">
      <option value="yourvalue"> Select </option>

                @foreach (var te in a)
                {
                    <option value='@te.ID.ToString()'>@te.Nam </option>

                }
 </select>
}

我希望这项工作。

于 2013-03-21T12:40:58.937 回答