MVC 5 Select 显示当前选择的列表项

MVC 5 Select List Item with current selection showing

抱歉,我不会尝试使用技术术语来解释我的问题,我会尝试使用基本的英语 - 我希望我的 select 列表与当前 selected 经销商一起出现在我的视图中已经选择(下面有更多详细信息)。在此先感谢您。

我有一个产品存储在它自己的数据 table 中,它由经销商销售,我存储销售它的经销商编号的产品。

我从经销商数据中获取经销商编号table。

在网页上,我在产品售出时创建了一个下拉列表,用户 select 是销售该产品的经销商名称。我设法创建了显示名称的列表,但是当 selected 将 ID 存储在经销商的产品 table 中时,它工作正常。

当我编辑产品时,我正在努力让 select 列表出现并显示当前 selected 经销商,它总是与列表中的第一个经销商一起出现。我已经搜索过,但是由于我从其他 SO posts 中得到了这段代码,所以我找不到适用于我的代码示例的 post。

任何 feedback/help/suggestions 将不胜感激。

控制器

            // Create drop down list of dealer names to allow users to select from easily identifiable list rather than find number first before coming to the page.
        var list = db.Dealers.OrderBy(r => r.Name).ToList().Select(rr =>
        new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name }).ToList(); // Require to code and set value based on current selected name.

        ViewBag.DealerName = list;

Razor 视图代码:

            <div class="form-group">
            @Html.LabelFor(model => model.Dealer_ID, htmlAttributes: new { @class = "control-label col-md-4" })
            <div class="col-md-8">
                @*
                @* Custom display for drop down list which shows Dealer Name instead of numeric ID Value *@
                @Html.DropDownListFor(m => m.Dealer_ID, (IEnumerable<SelectListItem>)ViewBag.DealerName, new { htmlAttributes = new { @class = "form-control" } })
            </div>
        </div>

你把model.Name存储到SelectListItemValue,但是对应model.Dealer_ID[=17=的值应该是属性 ]

rr.IDrr.Dealer_ID:

var list = db.Dealers.OrderBy(r => r.Name).ToList().Select(rr =>
        new SelectListItem { Value = rr.Dealer_ID.ToString(), Text = rr.Name }).ToList();