[英]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.