public class tb_Citys
{
public tb_Citys()
{}
#region Model
private int _id;
private string _cityname;
/// <summary>
///
/// </summary>
public int ID
{
set{ _id=value;}
get{return _id;}
}
/// <summary>
///
/// </summary>
public string CityName
{
set{ _cityname=value;}
get{return _cityname;}
}
#endregion Model } // 进来后绑定城市信息。
[HttpGet]
public ActionResult Register()
{
DAL.tb_Citys bllcitys = new MVCNoteBook.DAL.tb_Citys();
DataTable dt = bllcitys.GetList("1=1").Tables[0]; //获得所有City
List<SelectListItem> selectcitys = new List<SelectListItem>();
foreach (DataRow dr in dt.Rows)
{
selectcitys.Add(new SelectListItem { Text = dr["CityName"].ToString(), Value = dr["ID"].ToString() });
}
ViewData["selectcitys"] = selectcitys;
return View();
}
注删页面,选择一个城市 <div class="editor-label">
<%= Html.LabelFor(model => model.City) %>
</div>
<div class="editor-field">
<%=Html.DropDownListFor(model=>model.City,ViewData["selectcitys"] as IEnumerable<SelectListItem>)%>
<%= Html.ValidationMessageFor(model => model.City) %>
</div>
提交报错:The ViewData item that has the key 'City' is of type 'System.Int32' but must be of type 'IEnumerable<SelectListItem>'.找了半天没找到找到办法,求指点。。
解决方案 »
- 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小
- Eval绑定方法
- GridView的奇怪问题,GridView的数据源是抽象类的集合,集合中添加不同抽象类的实现会抛出异常,同一个实现不会抛出异常。
- 一百分问一个菜菜问题 关于DataGrid绑定后分页出错的问题
- 求.net ubb标签做的.可以定义文字.图片的..
- 求个正则表达式,限定字符个数的!
- ASP.NET中url重写后,css图片路径不正确。
- 有多少人研究http://sourceforge.net的共享项目吗?
- IE7的奇怪问题
- 一个已编译在线运行的项目,如何新增一个页面(无源码无法再次编译)使其可以正常运行sql语句?
- 意外发现,为什么FormsAuthentication.RedirectFromLoginPage无法"干净"的拦截下.htm???
- 为DataList中的ImageButton添加事件
[HttpGet]
public ActionResult Register()
{
DAL.tb_Citys bllcitys = new MVCNoteBook.DAL.tb_Citys();
DataTable dt = bllcitys.GetList("1=1").Tables[0];
//List<SelectListItem> selectcitys = new List<SelectListItem>();
//foreach (DataRow dr in dt.Rows)
//{
// selectcitys.Add(new SelectListItem { Text = dr["CityName"].ToString(), Value = dr["ID"].ToString() });
//}
//ViewData["selectcitys"] = selectcitys;
List<tb_Citys> tb_cityslist = new List<tb_Citys>();
foreach (DataRow dr in dt.Rows)
{
tb_Citys tc = new tb_Citys();
tc.ID = (int)dr["ID"];
tc.CityName = dr["CityName"].ToString();
tb_cityslist.Add(tc);
}
ViewData["selectcitys"] = new SelectList(tb_cityslist, "ID", "CityName");
return View();
} <div class="editor-label">
<%= Html.LabelFor(model => model.City) %>
</div>
<div class="editor-field">
<%=Html.DropDownListFor(model=>model.City,ViewData["selectcitys"] as SelectList)%>
<%= Html.ValidationMessageFor(model => model.City) %>
</div>还是报错//接收注册的方法[HttpPost]
public ActionResult Register(Register_tb_User user)
{
if (ModelState.IsValid)
{
DAL.tb_User daltb_user = new MVCNoteBook.DAL.tb_User();
if (daltb_user.Add(user))
{
ModelState.AddModelError("", "添加用户失改!");
}
else
{
return RedirectToAction("Login");
}
}
return View(user);
}
不知道什么原因,悲剧
你的model.City 是 什么类型,是int类型? 下拉框要的是字符串, 是不是Model.CityName之类的。