使用ViewData 字典

Controller 基类公开了一个ViewData 字典属性,用来从Controllers 传递额外的数据给Views 视图。
例如,为了实现将Edit 视图中Country 国家的文本框改为下拉列表框,我们更新Edit() Action 方法,传
入一个SelectList 对象(除了Dinner 对象外),该对象将作为Country 下拉列表框的Model 类。
// GET: /Dinners/Edit/5
[Authorize]
public ActionResult Edit(int id) {
Dinner dinner = dinnerRepository.GetDinner(id);
ViewData["Countries"] = new SelectList(PhoneValidator.AllCountries, dinner.Country);//PhoneValidator.AllCountries,是封装好的一个可枚举的属性,其中包括了国家信息。
return View(dinner);
}
上述SelectList 构造函数接收2 个参数,第一个是国家列表,添加下拉列表,第二个是当前选择的值。
下面更新Edit.aspx 视图模板,使用Html.DropDownList() 辅助方法代码Html.TextBox() 辅助方法:
<%= Html.DropDownList("Country", ViewData["Countries"] as SelectList) %>
上述Html.DropDownList() 辅助方法接收2 个参数,第一个是输出的HTML 表单元素的名称,第二个是通
过ViewData 字典传入的SelectList 模型类,必备那个使用C#的关键字as 转换dictionary 为SelectList。
现在我们在浏览器中访问/Dinners/Edit/2,发现Edit 视图模板中Country 国家文本框已经更新为下拉列表
框了。

 

摘自《一步一步学mvc》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值