从存储库填充下拉列表

发布于 2024-12-06 00:35:22 字数 228 浏览 1 评论 0原文

我有一个来自控制器上这段代码的 MVC3 下拉列表。

private SelectList progCodesList = new SelectList(new[] { "Description", "Requirements", "Development", "Testing", "Documentation" });

如何填充存储库中的字段以动态构建下拉列表? 谢谢。

I have an MVC3 drop down list that come from this code on the controller.

private SelectList progCodesList = new SelectList(new[] { "Description", "Requirements", "Development", "Testing", "Documentation" });

How can I fill the fields from a repository, to build the drop down dynamically?
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷︶言冷语的世界 2024-12-13 00:35:22

假设数据库表中有 progCodes,其中 progCode 具有文本,progCodeId 具有唯一 id,那么您可以将该表读入 SelectListItem 列表,如下所示:

private DbContext _db = new DbContext();

var progCodesList = _db.progCodes.Select(x => new SelectListIem()
    {
        Text = x.progCode,
        value = x.progCodeId
    }).ToList();

然后您可以在强类型模型中或使用 ViewBag 将此 List 传递到您的视图。

Assuming you have the progCodes in a database table, with progCode having the text, and progCodeId with a unique id, then you can read the table into a list of SelectListItem as follows:

private DbContext _db = new DbContext();

var progCodesList = _db.progCodes.Select(x => new SelectListIem()
    {
        Text = x.progCode,
        value = x.progCodeId
    }).ToList();

You can then pass this List<SelectListItem> to your view either in a strongly-typed model, or using the ViewBag.

不弃不离 2024-12-13 00:35:22

您需要使用以下内容将 progCodesList 传递到控制器方法中的 ViewBag:

ViewBag.ProgCodeId = progCodesList;

然后在您的视图中,您需要像这样填充下拉列表:

    <div class="editor-label">
        @Html.LabelFor(model => model.ProgCodeId, "ProgCode")
    </div>
    <div class="editor-field">
        @Html.DropDownList("ProgCodeId", String.Empty)
        @Html.ValidationMessageFor(model => model.ProgCodeId)
    </div>

You need to pass the progCodesList to the ViewBag in your controller method using something like:

ViewBag.ProgCodeId = progCodesList;

Then in your view, you need to fill the drop down like this:

    <div class="editor-label">
        @Html.LabelFor(model => model.ProgCodeId, "ProgCode")
    </div>
    <div class="editor-field">
        @Html.DropDownList("ProgCodeId", String.Empty)
        @Html.ValidationMessageFor(model => model.ProgCodeId)
    </div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文