MVC3中下拉列表的处理

ltbo99 2011-06-22 09:57:34
我在asp.net mvc3处理中,有个问题当出现重得的输入时报The ViewData item that has the key 'Id' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'
我的代码是这样的。
#region 性别下拉列表选择
private void AddGenderToViewBag()
{
Dictionary<string, string> list = new Dictionary<string, string>();
list.Add("男", "男");
list.Add("女", "女");
SelectList items = new SelectList(list, "Value", "Key");
ViewBag.GenderList = items;
}
#endregion

public ActionResult insSngStu()
{
AddGenderToViewBag();
AddAddressToViewBag();
var stu = new Models.stu.student();
return View(stu);
}

[HttpPost]
public ActionResult insSngStu(Models.stu.student stu)
{
if (ModelState.IsValid)
{
int result = ro.InsertSngStu(stu);
if (result > 0)
{
return RedirectToAction("Index");
}
}
return View(stu);
}

页面代码:
<div class="editor-label">
@Html.LabelFor(model => model.Sex)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.Sex, (SelectList)ViewBag.GenderList, "--请选择--", new { @class = "droplist" })
@Html.ValidationMessageFor(model => model.Sex)
</div>

当第一次添加时,不报错,但第二次有重复时,就报如上错误,不知如何处理?有没有人遇到过类型情况,你是如何解决的?
...全文
1524 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltbo99 2011-06-30
  • 打赏
  • 举报
回复
错误主要原因是在提交处不认识原来的下拉列表,将 AddGenderToViewBag(); AddAddressToViewBag();在 [HttpPost]
public ActionResult insSngStu(Models.stu.student stu){
重复放一次
}
问题就解决了。

ltbo99 2011-06-22
  • 打赏
  • 举报
回复
前面报错用的是修改时出的错误,添加与修改都下拉列表的错误。
ltbo99 2011-06-22
  • 打赏
  • 举报
回复
这个出错应该是The ViewData item that has the key 'Gender' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'
子夜__ 2011-06-22
  • 打赏
  • 举报
回复
子夜__ 2011-06-22
  • 打赏
  • 举报
回复
Id不是string类型的。

为啥要有重复?
之前在一家公司里用过Knockout,是easyui 和 Knockout结合 的。下面的这本应该不错。 目录 前言 第一部分入门指南 第1章MVC介绍 创建第一个项目 分析HomeController 分析View 理解URL结构 小结 第2章Bootstrap介绍 默认菜单 含有下拉列表和搜索框的菜单 按钮 警告框 主题 小结 第3章Knockout.js介绍 安装Knockout.js 基本示例 何为MVVM? 创建ViewModel 小结 第4章数据库应用 Entity Framework介绍 Code First Database First 创建测试数据 小结 第二部分数据处理 第5章表的查询、排序、分页 Author查询 Author排序 Author分页 小结 第6章表单处理 在表单集成Knockout 共享View和ViewModel 在模态框进行删除操作 空表格 小结 第7章服务器端ViewModel 为什么要创建服务器端ViewModel? AuthorViewModel 更新Authors列表 更新Add/Edit表单 更新Delete模态框 小结 第8章Web API介绍 安装Web API 更新Authors列表 更新Authors的Add/Edit表单 小结 第三部分代码架构 第9章创建全局过滤器 Authentication过滤器 Authorization过滤器 Action过滤器 Result过滤器 Exception过滤器 Web API全局验证 用Result过滤器进行自动映射 Web API错误处理 MVC错误处理 小结 第10章添加验证与授权 Authentication概述 Authorization概述 实现一个Authentication过滤器 实现一个Authorization过滤器 小结 第11章使用Attribute定义URL路由 Attribute路由基础知识 路由前缀 路由约束 小结 第12章胖模型、瘦控制器 关注点分离 服务与行为 小结 第四部分应用实例 第13章构建购物车 购物车需求 购物车项目 JavaScript捆绑与最小化 小结 第14章构建数据模型 Code—First模型 定义DbContext并初始化数据 视图模型 小结 第15章布局实现 共享布局 购物车摘要 分类菜单 小结 第16章图书列表 主页 特色图书 按分类筛选图书 小结 第17章添加购物车 图书详情 自定义组件和自定义绑定 保存购物车项 小结 第18章更新或删除购物车 购物车详情 购物车详情上的Knockout应用 完成购物车

62,074

社区成员

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

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

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

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