Asp.net mvc SelectList在MVC DropDownList中返回为null
在MVC RC1表单上使用Html.DropDownList帮助程序时遇到问题 在controller类中,我创建了一个如下所示的SelectListAsp.net mvc SelectList在MVC DropDownList中返回为null,asp.net-mvc,Asp.net Mvc,在MVC RC1表单上使用Html.DropDownList帮助程序时遇到问题 在controller类中,我创建了一个如下所示的SelectList SelectList selectList = new SelectList(db.SiteAreas, "AreaId", "AreaName"); ViewData["AreaId"] = selectList; IEnumerable<SelectListItem> areaList = from area in db
SelectList selectList = new SelectList(db.SiteAreas, "AreaId", "AreaName");
ViewData["AreaId"] = selectList;
IEnumerable<SelectListItem> areaList =
from area in db.SiteAreas
select new SelectListItem
{
Text = area.AreaName,
Value = area.AreaId.ToString(),
Selected = false
};
ViewData["AreaId"] = areaList;
还是像这样
SelectList selectList = new SelectList(db.SiteAreas, "AreaId", "AreaName");
ViewData["AreaId"] = selectList;
IEnumerable<SelectListItem> areaList =
from area in db.SiteAreas
select new SelectListItem
{
Text = area.AreaName,
Value = area.AreaId.ToString(),
Selected = false
};
ViewData["AreaId"] = areaList;
这与名为SelectInternal的方法有关,该方法希望其selectList参数的值不是null
private static string SelectInternal(this HtmlHelper htmlHelper, string optionLabel, string name, IEnumerable<SelectListItem> selectList, bool usedViewData, bool allowMultiple, IDictionary<string, object> htmlAttributes)
{
if (String.IsNullOrEmpty(name)) {
throw new ArgumentException(MvcResources.Common_NullOrEmpty, "name");
}
if (selectList == null) {
throw new ArgumentNullException("selectList");
}
.. rest of method ..
private static string SelectInternal(此HtmlHelper HtmlHelper、字符串选项标签、字符串名称、IEnumerable selectList、bool usedViewData、bool allowMultiple、IDictionary htmlAttributes)
{
if(String.IsNullOrEmpty(name)){
抛出新ArgumentException(MvcResources.Common_NullOrEmpty,“name”);
}
如果(selectList==null){
抛出新ArgumentNullException(“selectList”);
}
…方法的其余部分。。
现在我所做的就是将代码从MVC beta 1升级到RC1,突然出现了这种情况。我以前见过对这个SelectInternal方法的引用,但没有具体的解决方案。那么有人能帮我弄清楚为什么会出现这种错误以及如何修复它吗
提前感谢您是否已升级到RC1刷新 他们已经修复了很多问题。我几乎100%确定我在升级到刷新之前遇到过类似的错误 Dave the Ninja发现了这一点,多亏了。事实证明,当表单发布回服务器时,验证实际上正在我的控制器上进行,但如果验证失败,控制器会尝试重新显示表单。但是,SelectList在某个位置被设置回null,因此我不得不重新创建SelectList也在那一页上
我不确定这是MVC中的错误还是我自己的错误,但作为参考,这里有解决方案。干杯。这不是MVC中的错误,而是设计上的错误(AFAIK) 您需要重新设置viewdata并将模型返回到视图
查看数据只存在于当前请求+1(即回发)中。Ah正确。感谢您提供的信息。我想知道为什么beta 1 MVC中从来没有出现过这个问题?验证模型从beta更改为RC。请参阅我的DDL教程和