日期:2014-05-20  浏览次数:20825 次

使用code frist的时候在验证和绑定时遇到一个让我很费解的情况
其中1中的能正常绑定选项、正常根据model中的数据选中选项、正常验证
但是2中的就只能绑定选项数据,不能根据数据选中选项、也不能验证

1中的UType是int类型
2中HangYe字段原来是string类型,我手动改成了int类型,库中我也更新过。
折磨的我很郁闷,不知道什么原因
附图:


附上前台生成的html:
1的
HTML code

<select name="UType" id="UType" data-val-required="UType 字段是必需的。" data-val-number="字段 UType 必须是一个数字。" data-val="true"><option value="">请选择行业</option>
<option value="1" selected="selected">精英设计师</option>
</select>


2的
HTML code

<select name="HangYe" id="HangYe"><option value="">请选择行业</option>
<option value="2">展馆设计</option>
</select>



附上绑定源码:
C# code

#region 个人分类
            var usertype = context.UserTypes.OrderByDescending(t => t.Sort).ToList();
            var gerenitemlist = new List<SelectListItem>();
            var gerendefault = new SelectListItem();
            gerendefault.Value = "";
            gerendefault.Text = "选择分类";
            gerenitemlist.Add(gerendefault);
            foreach (var entity in usertype)
            {
                var item = new SelectListItem();
                item.Value = entity.TID.ToString();
                item.Text = entity.TName;
                gerenitemlist.Add(item);
            }
            ViewBag.UserType = gerenitemlist;
            #endregion
            #region 所在行业
            var tid = user.Iscompany ? 2 : 1;
            var hangye = context.Industrys.Where(i => i.TID == tid).ToList();
            var hyitemlist = new List<SelectListItem>();
            var itemdefault = new SelectListItem();
            itemdefault.Value = "";
            itemdefault.Text = "请选择行业";
            hyitemlist.Add(itemdefault);
            foreach (var entity in hangye)
            {
                var item = new SelectListItem();
                item.Value = entity.InID.ToString();
                item.Text = entity.InName;
                hyitemlist.Add(item);
            }
            ViewBag.hangye = hyitemlist;
            #endregion



------解决方案--------------------
你的可能这个里面返回就没有值吧。
var hangye = context.Industrys.Where(i => i.TID == tid).ToList();