填充DropDownListFor()之前的上下文处理错误

问题描述 投票:1回答:1

我一直试图让DropDownList工作:

我的控制器代码如下:

    public ActionResult Register()
{
    var teams = new List<Team>();
    using (var context = new TouristContext())
    {
        teams = (from x in context.Teams select x).ToList();
    }

    var model = new RegisterViewModel()
    {
        Teams = new SelectList(teams, "Value", "Text")
    };

    return View(model);
}

我的DropDownListFor()代码如下:

<div class="form-group">
    @Html.LabelFor(m => m.Teams, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.DropDownListFor(m => m.SelectedTeamId, Model.Teams, "Value", "Text")
    </div>
</div>

当我尝试访问该页面时,我收到错误:

由于已经处理了DbContext,因此无法完成操作。

我理解错误,但我不知道如何克服它。

linq entity-framework razor asp.net-mvc-5 html.dropdownlistfor
1个回答
0
投票

事实证明它失败的原因是因为我什么都没有叫做ValueText

我的属性是IdName,所以我将我的代码更改为:

public ActionResult Register()
{
    var teams = new List<Team>();
    using (var context = new TouristContext())
    {
        teams = (from x in context.Teams select x).ToList();
    }

    var model = new RegisterViewModel()
    {
        Teams = new SelectList(teams, "Id", "Name")
    };

    return View(model);
}

现在一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.