不存在具有键“Id”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
用DropDownListFor做省市县的三级联动
as List<xxx>改成IEnumerable<xxx>
我改成as IEnumerable<SelectListItem>,他还是报了同样的错误哦。是不是在这个页面PartialView的问题呢
@NeXT1995: return PartialView("");你并没有给这个cshtml传入model值,而你在页中又引用了model=>model.Id
@qust_青岛: 我查询了一个model返给cshtml,但是呢,也是说
不存在具有键“AreaType”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
@NeXT1995: cshtml页面接收了么?@model xxxx像这样.
@qust_青岛: 我取消了用Model的,还有什么方法吗
@{
ViewBag.Title = "PartialCity";
}
@Html.DropDownList( "SelectCity", ViewData["cityLists"] as IEnumerable<SelectListItem>, "--------------请选择--------------", new { id = "City", Name = "City" })
这里的SelectCity也是不行的。
@NeXT1995: 这样按说可以的。你说“这里的SelectCity也是不行的。”是什么意思?
@qust_青岛: 他也是出现了一样的提示,说不存在具有键“SelectCity”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
不过其实做这个三级联动的。不知道还有没有什么好的方法。本来的数据太大了,一下子加载到页面太卡了,所以我就用了ajax去请求,本来在主页面的那里省市县三个
DropDownListFor都是可以显示的。然后ajax请求了ShowCity控制器 return PartialView("PartialCity");这个视图就一直了那个错误
@NeXT1995: 原来如此,你把viewdate[xx]返回给partialview;即:return partialview("viewname",viewdata);
参考这个重载版本:protected internal virtual PartialViewResult PartialView(string viewName, object model);
@qust_青岛: eturn partialview("viewname",viewdata);你这里所说的viewdata是查询出来的model吗?还是viewdate[xx]这里的viewdate
@qust_青岛: 我知道主要问题是这样的:1.我有一个主页面,里面放了三个DropDownListFor,其中有一个是@Html.Partial 2我用异步加载次要页面的东西到主页面的@Html.Partial 。然后呢,因为次页面就是我一开碰到的那个问题所在的页面了。因为加载主页面的@Html.Partial ,她就直接去读取次页面的内容了,因为还没经过控制器处理,所以他就会报错。不过目前我还没找到解决方法,有时间你帮我看看吧
代码呢?让大家猜你是怎么写的吗?
@NeXT1995: 这是你的ViewData【citylists】为空了?
@顾晓北: 我用了固定参数去查询,是可以查询集合来的,在PartialCity这个页面也能显示,但是在主页面就没办法显示了,还是报了那个错误,我觉得应该是别的问题的。集合应该是没问题的
@NeXT1995: 你如果吧selectlistItem换个类呢?换一个有所谓“id”的
@顾晓北: 您是说在页面那里改动model.ID化成别的字段吗?我改过那里也不行哦
@NeXT1995: 我的意思是List<SelectListItem> 改成List<其他类,这个类有一个类似Id的字段>,但照说MVC不能那么蠢的。。。
@顾晓北: 是的,我在那里改过了,那些类也是不行的。但是本来这个DropDownListFor我在别的页面也是可以,但是在这里就一直出现了这种错误,后来我对参数进行判断,控制provinceId查出来的cityList一定不为空,但是题还是同样的报错
用ViewData["citylists"] = new SelectList(cityList,"cityid","cityname")就好了,还循环add搞那么复杂干嘛
“/”应用程序中的服务器错误。
不存在具有键“SelectCity”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
@NeXT1995: 你视图里面要换成ViewData["cityLists"] as SelectList 啊,你还用List<SelectListItem>肯定出错
@balahoho: 视图那里我也是改好了的,但是他就是报出这样的错误来的