<tr bgcolor="#FFFFFF">
    <td width="14%" align="center" bgcolor="#FFFFFF">
            @Html.LabelFor(model => model.BType)
</td>
        <td bgcolor="#FFFFFF" class="style1">
            @Html.ListBoxFor(model => model.BType, new MultiSelectList(Model.BusinessTypes, "BTId", "BTName"))
        </td>
        <td width="18%" bgcolor="#FFFFFF">
            @Html.ValidationMessageFor(model => model.BType)
        </td>
    </tr>这是前台代码
========================分割线=============================        [HttpPost]
        [ValidateInput(false)]
        public ActionResult BusinessEdit(int id, Business model)
        {
            if (ModelState.IsValid)
            {
                ContentEntities ce = new ContentEntities();
                var _obj = ce.Business.Where(b => b.BId == id).Single();
                _obj.BType = Request.Form["BType"].Trim();
                if (TryUpdateModel(_obj))
                {
                    ce.SaveChanges();
                    return RedirectToAction("BusinessList");
                }
            }            return View(model);
        }
这是我的后台代码为什么我多选之后就是更新不了,跟踪了一下代码,在_obj.BType = Request.Form["BType"].Trim();这一句的时候确实是附到了多个值,可是到了TryUpdateModel(_obj)这句的时候值就成了一个了,希望高人指点,这是我作的一个修改model的代码,在新添加的功能里和这个差不多,都是最简单的代码,添加的时候就是可以用的

解决方案 »

  1.   

    Request.Form["BType"].Trim(); 获取的是字符串么? 
      

  2.   

    表示 木有用过Controller.TryUpdateModel(Of TModel)  
            
      

  3.   

    没有满意答案,不过自己弄明白了,经过我对代码的跟踪,发现 model在TryUpdateModel这一句的时候开始更新数据,所以在这句后面再附值就会被保存了,在这之前的值不会被保存