未选择MVC3 DropDownListFor SelectedItem

时间:2011-08-27 00:41:09

标签: asp.net-mvc razor html.dropdownlistfor

在我的控制器中,我有以下内容(为简洁起见,省略了代码):

public ActionResult Edit(string id)
    {
        vw_user u = _respository.getProfile(id);

        var model = new UserProfileEditViewModel
        {
            SL_collegeid = new SelectList(_respository.getColleges(u.State), "id", "college1", u.id)

        };
        return View(model);
    }

现在,当我在返回之前调试模型时,它显示在SelectList(SL_collegeid)中选择了特定的学院(u.id)。但是,当页面加载时,未选择所选项目。

以下是cshtml的代码:

@Html.DropDownListFor(model=>model.SL_collegeid, Model.SL_collegeid)

有人可以帮我解决这个问题吗?

提前谢谢你, 克里斯

2 个答案:

答案 0 :(得分:1)

当调用控制器方法时,有问题的视图是否没有选择?如果是这样,模型不会覆盖ModelState字典中的内容 - 因此,即使您更改作为视图的支持字段的model属性,最初发布的数据也将胜过它。同样,如果是这种情况,您可以通过不使用html帮助程序并使用Razor语法手动设置HTML中的值来绕过它。

答案 1 :(得分:0)

您必须在声明中返回正确的对象:

return view(yourObj);

或者您也可以尝试:

@Html.DropDownListFor(model=>model.SL_collegeid,new SelectList(Model.YourDropDownList as System.Collections.IEnumerable,model.SL_collegeid ))