2016-01-13 105 views
1

我的道歉我不会尝试使用技术术语来解释我的问题,我会尝试基本英语 - 我想让我的选择列表出现在我看来与他目前选择的经销商已选择(更多细节如下)。先谢谢你。MVC 5选择列表项目,当前选择显示

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

我从经销商数据表中获得经销商编号。

在网页上,我创建一个下拉列表,当产品出售时,用户选择销售商的销售商名称。我已经设法创建了显示名称的列表,但是当选择将代码存储在代理商的产品表中时,此工作正常。

我只是在努力编辑产品时,出现选择列表并显示当前选定的经销商,它总是出现在列表中的第一个经销商。我已经搜索,但由于我从其他SO帖子获取此代码,我无法找到一个适合我的代码示例的帖子。

任何反馈/帮助/建议将不胜感激。

控制器

  // 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> 

回答

3

您存储model.NameSelectListItemValue,但它应该是对应的model.Dealer_ID

rr.ID或值属性rr.Dealer_ID

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

嗨@Gene R谢谢您的及时回复,不幸的是,除非我不正确地理解您的答案,否则您可能会误解我的措辞不佳的问题。我的列表工作得很好,但是当我进入页面时,选择列表总是选择列表中的第一个经销商。我希望它能向当前选择的商队出售大篷车。 –

+0

@AndyDonegan您的列表中不包含您在下拉列表中绑定的“Dealer_ID”的值 'Html.DropDownListFor(m => m.Dealer_ID ...' –

+0

非常感谢您,我已经尝试过并现在进行了测试,是的,你是绝对正确的,现在显示当前选择的经销商名称。再次感谢你的耐心,第二次让我正确! –