使用 c# 在 mvc4 中使用 viewbag 数据的下拉列表
Posted
技术标签:
【中文标题】使用 c# 在 mvc4 中使用 viewbag 数据的下拉列表【英文标题】:Dropdownlist using viewbag data in mvc4 using c# 【发布时间】:2013-08-28 13:45:04 【问题描述】:您好,我想在我的查看页面中填写一个下拉列表,我的代码是
public class MemberBasicData
public int Id get; set;
public string Mem_NA get; set;
public string Mem_Occ get; set;
//控制器
public ActionResult Register()
var users = new Member().GetAllMembers();
ViewBag.Users = users;
return View();
//查看
@model IEnumerable<....Members.Models.MemberBasicData>
@html.DropDownListFor(model => model.Mem_Na, (SelectList)ViewBag.Users, "--Select Users--")
我想将 Mem_NA 添加到下拉列表中,Viewbag 包含所有用户详细信息。问题出在查看页面中。 model.Mem_Na 中显示错误。请帮我解决这个问题。
【问题讨论】:
错误是什么? @No One: 可以包含 Mem_NA 的定义 【参考方案1】:拼写错误?您在视图中拼写 Mem_Na,在模型中拼写 Mem_NA
【讨论】:
【参考方案2】:请更改您的代码
来自
@model IEnumerable<....Members.Models.MemberBasicData>
@Html.DropDownListFor(model => model.Mem_Na, (SelectList)ViewBag.Users, "--Select Users--")
到
@model ....Members.Models.MemberBasicData
@Html.DropDownListFor(model => model.Id,new SelectList(ViewBag.Users,"Id","Mem_NA"), "--Select Users--")
它每次都对我有用
【讨论】:
【参考方案3】:您的模型是MemberBasicData
的IEnumerable
,而不是MemberBasicData
的实例。这意味着您无法直接访问 MemberBasicData
的属性,因为该属性不存在于 IEnumerable
中。
从你的代码中我能看到的很少,我想你希望你的模型是一个实例,而不是一个列表。
【讨论】:
以上是关于使用 c# 在 mvc4 中使用 viewbag 数据的下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
MVC4.0中ViewBagViewDataTempData和ViewModel几种传值方式的区别
如何使用 Razor 视图引擎在 JavaScript 中正确混合 C# 代码。我希望根据 ViewBag 中的值包含或省略 Javascript