MVC3怎么获取dropdownlist选中值???我的这个代码出现问题啦(如下),大虾帮帮忙

坐在山顶看河流 2011-12-06 11:26:15
@Html.DropDownList("buildinattr", new SelectList(ViewBag.Datalist, "UserTypeId", "UserTypeName"), new { style = "width:155px;margin-right:5px;" })
提示上面代码:值不能为 null。
参数名: items
...全文
826 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 sandy945 的回复:]

引用 23 楼 sandy945 的回复:
List<UserTypeModels> list = userInfo.GetUserTypeInfo();
ViewBag.Datalist = list ;

看看list 有数据么

是不是为null了
[/Quote]
他一直有数据,纠结,不知道怎么回事,就好了,什么也没改啊
阿非 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 sandy945 的回复:]
List<UserTypeModels> list = userInfo.GetUserTypeInfo();
ViewBag.Datalist = list ;

看看list 有数据么

是不是为null了
[/Quote]
  • 打赏
  • 举报
回复
我就郁闷,怎么好了呀,我什么也没改呀,纠结。。。。。
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 kkbac 的回复:]

页面能打开. dll也可以选择了.就排除绑定的问题了.

你可以调试下, 看看错误具体在哪里出现的.

你既然都是用mvc了. 尽量改正 user.UserTypeId = Request.Form["buildinattr"]; 方式的写法.
[/Quote]
不用拉,user.UserTypeId就是
kkbac 2011-12-07
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
纠结啊。。。。
什么也没改,怎么好了呀。可以转过来值了,也不出现那错误了
kkbac 2011-12-07
  • 打赏
  • 举报
回复
页面能打开. dll也可以选择了.就排除绑定的问题了.

你可以调试下, 看看错误具体在哪里出现的.

你既然都是用mvc了. 尽量改正 user.UserTypeId = Request.Form["buildinattr"]; 方式的写法.
阿非 2011-12-07
  • 打赏
  • 举报
回复
List<UserTypeModels> list = userInfo.GetUserTypeInfo();
ViewBag.Datalist = list ;

看看list 有数据么

是不是为null了
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 kkbac 的回复:]

public ActionResult Create(UserInfoModels user)
{
try
{
// TODO: Add insert logic here
user.UserTypeId = Request.Form["buildinattr"];
UserInfoBLL userInfo = new UserInfoBLL();
us……
[/Quote]
我就是添加,就是从数据库一个表读取数据显示在dropdownlist中,然后再添加到另一个表中。这个和Update有关系吗
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 sandy945 的回复:]

new SelectList(ViewBag.Datalist
----------------------------
应该是你的action 中没有为 ViewBag.Datalist 赋值
[/Quote]
是不是应该把 ViewBag.Datalist 转化为IEnumerable<SelectListItem>
kkbac 2011-12-07
  • 打赏
  • 举报
回复
public ActionResult Create(UserInfoModels user)
{
try
{
// TODO: Add insert logic here
user.UserTypeId = Request.Form["buildinattr"];
UserInfoBLL userInfo = new UserInfoBLL();
userInfo.Update(user);
return RedirectToAction("Index");
}

你这里不是添加是更新? update代码是什么?
至少你的user对象本身就可能有问题, 监视下他的值.
  • 打赏
  • 举报
回复
是要把buildinattr 该成usertypeid吗,有多大关系吗
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 kkbac 的回复:]

user.UserTypeId = Request.Form["buildinattr"];

把ddl的名称改成usertypeid
[/Quote]
不理解????
kkbac 2011-12-07
  • 打赏
  • 举报
回复
user.UserTypeId = Request.Form["buildinattr"];

把ddl的名称改成usertypeid
  • 打赏
  • 举报
回复
赋值了, public ActionResult Create()
{
UserInfoModels userInfo1 = new UserInfoModels();
UserInfoBLL userInfo = new UserInfoBLL();
List<UserTypeModels> list = userInfo.GetUserTypeInfo();
ViewBag.Datalist = list ;
return View(userInfo1);
}

dropdownlist也显示,就是如果再把dropdownlist选中的值添加到数据库中就出现上面的错误了
阿非 2011-12-07
  • 打赏
  • 举报
回复
new SelectList(ViewBag.Datalist
----------------------------
应该是你的action 中没有为 ViewBag.Datalist 赋值
  • 打赏
  • 举报
回复
能再帮帮忙,看一下我代码吗?哪出错了??
<div class="editor-label">
用户类型名称
</div>
<div class="editor-field">
@Html.DropDownList("buildinattr",new SelectList(ViewBag.Datalist as System.Collections.IEnumerable, "UserTypeId", "UserTypeName"), new { style = "width:155px;margin-right:5px;" })
@Html.ValidationMessageFor(model => model.UserTypeId)
</div>




public ActionResult Create(UserInfoModels user)
{
try
{
// TODO: Add insert logic here
user.UserTypeId = Request.Form["buildinattr"];
UserInfoBLL userInfo = new UserInfoBLL();
userInfo.Update(user);
return RedirectToAction("Index");
}
选择dropdownlist中内容,点击添加时就会出现:
值不能为 null。
参数名: items
  • 打赏
  • 举报
回复
控制器在呈现的时候,设置默认选中,即下面的Selected
  public static List<SelectListItem> GetChild(int CompanyID,int? selectid)
{
return new OEMPPEntities().P_GetChildCompanyName(CompanyID).Select(a => new SelectListItem() { Text = a.Name, Value = a.ID.ToString(), Selected = a.ID == selectid }).ToList();

}
骑猪看海 2011-12-06
  • 打赏
  • 举报
回复
new SelectList(ViewBag.Datalist,"Value", "Text","30");
设下默认值,在后台做好在传前台好点
加载更多回复(9)

62,066

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧