简体   繁体   English

ASP.net MVC 5 下拉列表

[英]ASP.net MVC 5 Dropdownlist

I am new to MVC.I am using a class library as Model and it reads data from the database and stores it in a Collection.我是 MVC 的新手。我使用一个类库作为模型,它从数据库中读取数据并将其存储在一个集合中。 Here is the code from the class library which reads records from sql database:这是类库中从sql数据库读取记录的代码:

 public IList<SemesterDetails> Read(User user )
    {
        string code; string name; int credits;int selfStudy;int modHrsPerWeek;
        List<SemesterDetails> q = new List<SemesterDetails>();
      
        using (SqlConnection db = new SqlConnection(AppConnect.Connection))
        {
            string query = "SELECT moduleCode,moduleName,modCredits,modHrsPerWeek,modHrsLeft FROM [Module] WHERE userName=@userName";
            try
            {
                using (SqlCommand command=new SqlCommand(query,db))
                {
                    if (db.State == ConnectionState.Closed)
                    {
                        db.Open();
                        command.Parameters.AddWithValue("@userName",user.UserName);
                       
                        SqlDataReader reader = command.ExecuteReader();

                        while (reader.Read())
                        {
                            code = reader.GetString(0);
                            name = reader.GetString(1);
                            credits = reader.GetInt32(2);
                            modHrsPerWeek = reader.GetInt32(3);
                            selfStudy = reader.GetInt32(4);
                            SemesterDetails semester = new SemesterDetails(code, name, credits,selfStudy);
                            q.Add(semester);

                        }
                        
                    }
                }
           
            }
            catch (Exception e)
            {

                Console.WriteLine(e.Message);
            }
            return q;
        }

This gets called this action of the controller shown below:这被称为控制器的这个动作,如下所示:

    public ActionResult EditStudyHrs(User user)
    {
        List <SemesterDetails >list= dataHandle.Read(user).ToList();
        List<string> str = new List<string>();

        foreach (var item in list)
        {
           
            str.Add(item.ModuleCode);
        }
        ViewBag.Modules = new SelectList(str, "ModuleCode", "ModuleCode");
        return View();
    }

I would like to bind Module code property to a Dropdownlist in this view:我想在此视图中将模块代码属性绑定到下拉列表:

  <div class="form-horizontal">
    <h4>Details</h4>
    <hr />
    @Html.DropDownList("Modules","SelctModuleCode")
</div>

SemesterDetails class: SemesterDetails 类:

 public  class SemesterDetails : ModuleInfo
{

    private int numOfSemWeeks;

    public int NumOfSemWeeks
    {
        get { return numOfSemWeeks; }
        set { numOfSemWeeks = value; }
    }


    private DateTime startdate;
    public DateTime StartDate
    {
        get { return startdate; }
        set { startdate = value; }
    }

    private int studyHrsPerweek;

    public int StudyHrsPerweek
    {
        get { return studyHrsPerweek; }
        set { studyHrsPerweek = value; }
    }
    private DateTime endDate;

    public DateTime EndDate
    {
        get { return endDate; }
        set { endDate = value; }
    }
  

    private int selfStudy;

    public int SelfStudy
    {
        get { return selfStudy; }
        set { selfStudy = value; }
    }
  public SemesterDetails(string code,string name,int credits,int selfStudy)
    {
        this.ModuleCode = code;
        this.ModuleName = name;
        this.ModuleCredits = credits;
        this.SelfStudy = selfStudy;
       
        
    }

Try this尝试这个

action行动

using Microsoft.AspNetCore.Mvc.Rendering;
.....

public ActionResult EditStudyHrs(User user)
{
    var list= dataHandle.Read(user).ToList();

    ViewBag.Modules = list.Select(i=> new SelectListItem { Value=i.ModuleCode, Text = i.ModuleName}).ToList();
var model= new SemesterDetails ();

 return View(model);
}

view看法

@model SemesterDetails 
.....

@Html.DropDownListFor(m => m.ModuleCode,@ViewBag.Modules, "Select Module")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM