具有键“Shape”的 ViewData 项属于类型“System.String”,但它必须属于类型“IEnumerable<SelectListItem>”。...

具有键“Shape”的 ViewData 项属于类型“System.String”,但它必须属于类型“IEnumerable<SelectListItem>”。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 具有键“Shape”的 ViewData 项属于类型“System.String”,但它必须属于类型“IEnumerable<SelectListItem>”。

源错误:

行 107:                            <span class="label UserEditlabel">体型:</span>
行 108:                            <div class="fl">
行 109:                                <%= Html.DropDownList("Shape")%>
行 110:                                
行 111:                            </div>  


出错原因: 忘了设置ViewData["shape"]为SelectList类型,SelectList实现了 "IEnumerable<SelectListItem>"接口 

[Serializable]
    public class ProfileInformation

{

        public static SelectList GetShapeList(String shape)
        {
            List<SelectListItem> shapeList = new List<SelectListItem>()
            {
                new SelectListItem() { Value = "F", Text = "偏胖" },
                new SelectListItem() { Value = "N", Text = "正常" },
                new SelectListItem() { Value = "T", Text = "偏瘦" }
            };
           
            return new SelectList(shapeList, "Value", "Text", shape);
        }

}

    [Authorize]
    public ActionResult UserProfile()

{

            string id = HttpContext.User.Identity.Name.ToString();
            ProfileBase profileBase;
            if (!String.IsNullOrEmpty(id))
            {
                profileBase = ProfileBase.Create(id);
            }
            else
            {
                profileBase = HttpContext.Profile as ProfileBase;
            }

            ProfileInformation profile =( ProfileInformation) profileBase.GetPropertyValue("ProfileInformation") ;

           ViewData["shape"] = ProfileInformation.GetShapeList(profile.Shape);   //此处设置ViewData["shape"]为SelectList类型即可

}

转载于:https://www.cnblogs.com/lushuicongsheng/archive/2011/05/02/2034346.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值