MVC框架中如何进行List<SelectListItem>绑定

 我来答
pay300
2016-02-03 · TA获得超过2766个赞
知道小有建树答主
回答量:689
采纳率:0%
帮助的人:223万
展开全部
public ActionResult Modify(int id)
{

//3.1.1 检查id
//3.1.2根据id查询数据
Models.Student stu = (from s in db.Students where s.Id == id select s).FirstOrDefault();
//方法一、查询班级数据,并 做成 下拉框 选项集合
//List<Models.Class> listClass = (from c in db.Classes where c.CIsDel == false select c).ToList();
//ViewBag.classList = listClass;
//方法二 查询班级数据,并转成 下拉框选项 集合
List<SelectListItem> listClass = db.Classes.Where(c=>c.CIsDel==false).ToList()//先查询数据 并 转成 实体List集合
.Select( c=> new SelectListItem() { Text = c.CName, Value = c.CID.ToString(), Selected = (stu.CId == c.CID) }).ToList();//将实体集合 转成 SelectListItem集合
//将 下拉框选项 集合 设置给 ViewBag ,用以传递 到 视图
ViewBag.classList = listClass;
//SelectList
//3.1.加载视图,并传递 要修改的数据
return View(stu);
}

2

<table>
<tr>

<td>姓名:</td>

<td><input type="text" name="Name" value="@Model.Name" /></td>

</tr>

<tr>
<td>班级:</td>
<td>
@* 这是方法一*@

@*<select name="CID">

@foreach (Class s in @ViewBag.classList as List<Class>)

{

if(s.CID == Model.CId){

<option selected value="@s.CID">@s.CName</option>

}else{
<option value="@s.CID">@s.CName</option>
}

}
</select>*@

@* 这是方法二*@

@Html.DropDownList("CId", ViewBag.classList as IEnumerable<SelectListItem>)
</td>
</tr>

</table>

3

@* @Html.DropDownList("BelongCollege", ViewBag.BelongCollege as IEnumerable<SelectListItem>)*@

@Html.DropDownListFor(model=>model.BelongCollege, ViewBag.BelongCollegeEnum as IEnumerable<SelectListItem>)

@* <select name="BelongCollege" id="BelongCollege" class="valid">

@foreach (var s in (@ViewBag.BelongCollege as IEnumerable<SelectListItem>))
{

if (int.Parse(s.Value) == Model.BelongCollege)

{

<option selected value="@s.Value">@s.Text</option>

}

else

{

<option value="@s.Value">@s.Text</option>
}

}

</select>*@
憋不出来冷
2018-04-09 · TA获得超过2896个赞
知道小有建树答主
回答量:28
采纳率:100%
帮助的人:4511
展开全部

public ActionResult Modify(int id)

{

1. 检查id

2.根据id查询数据

Models.Student stu = (from s in db.Students where s.Id == id select s).FirstOrDefault();

方法一:查询班级数据,并 做成 下拉框 选项集合

List<Models.Class> listClass = (from c in db.Classes where c.CIsDel == false select c).ToList();

ViewBag.classList = listClass;

方法二 :查询班级数据,并转成 下拉框选项 集合

List<SelectListItem> listClass = db.Classes.Where(c=>c.CIsDel==false).ToList()//先查询数据 并 转成 实体List集合

.Select( c=> new SelectListItem() { Text = c.CName, Value = c.CID.ToString(), Selected = (stu.CId == c.CID) }).ToList();//将实体集合 转成 SelectListItem集合

将 下拉框选项 集合 设置给 ViewBag ,用以传递 到 视图

ViewBag.classList = listClass;

SelectList

3.加载视图,并传递 要修改的数据

return View(stu);}

2

<table>

<tr>

<td>姓名:</td>

<td><input type="text" name="Name" value="@Model.Name" /></td>

</tr>

<tr>

<td>班级:</td>

<td>

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式