【问题标题】:Trying to populate a DropDownList in Asp.Net Core Boilerplate Edit Modal?试图在 Asp.Net Core Boilerplate Edit Modal 中填充 DropDownList?
【发布时间】:2026-01-31 12:45:02
【问题描述】:

我在 ASP.Net Boilerplate 模板中的 EditModal 上将我的 int [StateID] 转换为字符串 [StateName] 时遇到问题。

我可以显示 StateID 但不能显示 StateName

 @Html.DropDownList("Id", Model.States,
                            new
                              {
                                  @class = "form-control",
                                  id = "StateCombobox",                               
                                  
                              })

下拉列表中填充了所有状态,但我试图将存储在服务器中的值显示为所选值。

任何指针将不胜感激!

【问题讨论】:

标签: asp.net-core aspnetboilerplate


【解决方案1】:

您需要在 SelectListItem 中将StateName 设置为Text,StateIdValue。这是一个演示:

型号:

public class DropDownModel
    {

        public List<SelectListItem> States { get; set; }

    }

行动:

public IActionResult TestDropDown()
        {
           //set StateName as Text,StateId as Value
            DropDownModel d = new DropDownModel { States = new List<SelectListItem> { new SelectListItem { Value = "1", Text = "state1" }, new SelectListItem { Value = "2", Text = "state2" } } };
            return View(d);
        }

查看:

@model DropDownModel
@Html.DropDownList("Id", Model.States,
                           new
                             {
                                 @class = "form-control",
                                 id = "StateCombobox",

                             })

结果:

【讨论】:

  • 谢谢。我现在能够做到这一点。下一步是根据 Vendors 表中的 StateID 值从 States 表中提取 stateName 值。我不熟悉使用样板和存储库。对我来说,它比使用 ViewData 和 ViewBag 的 MVC 脚手架更复杂。我已经阅读了 asp.net 样板网站上的文档,并在 Linq 查询上找到了一些很好的解释,但没有我正在尝试做的示例。他们的教程在创建任务处停止,不再继续进行编辑。再次感谢。