ASP.NET MVC 2 中的下拉菜单

发布于 2024-10-15 16:47:34 字数 345 浏览 0 评论 0原文

我有以下包含“NumberOfAdults”字段的 ViewModel。

public class SearchView
{
    public int NumberOfAdults { get; set; }
    // More fields...

}

假设它将有一些从某些配置文件填充的值(比如说 5),并且我有一个强类型视图。填充包含文本和值 1,2,3,4,5 的下拉列表而无需硬编码 ?有 MVC 的方法吗?

I have following ViewModel containing "NumberOfAdults" fields.

public class SearchView
{
    public int NumberOfAdults { get; set; }
    // More fields...

}

Assuming it will have some value (lets say 5) populated from some configuration file and I have a strongly typed View. What is the best way to populate a dropdown containing text and values of 1,2,3,4,5 without hard coding <Select...><Option value="1">1</Option></Select>? Is there a MVC way of doing it?

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

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

发布评论

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

评论(1

吲‖鸣 2024-10-22 16:47:34

如果有一个我没有想到的帮助器可以更优雅地构建 SelectList,我不会感到惊讶,但这确实有效。

    <%  
        // Build a list of SelectListItem from 1 to N
        List<SelectListItem> options = new List<SelectListItem>();
        for (int i = 1; i <= Model.NumberOfAdults; i++)
        {
            string stringValue = i.ToString();
            SelectListItem item = new SelectListItem() { Value = stringValue, Text = stringValue };
            options.Add(item);
        }
    %>

    <%= Html.DropDownList("yourName", options) %>

这呈现:

<select id="yourName" name="yourName">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>

I wouldn't be surprised if there's a helper that I'm not thinking of that could build the SelectList more elegantly, but this works.

    <%  
        // Build a list of SelectListItem from 1 to N
        List<SelectListItem> options = new List<SelectListItem>();
        for (int i = 1; i <= Model.NumberOfAdults; i++)
        {
            string stringValue = i.ToString();
            SelectListItem item = new SelectListItem() { Value = stringValue, Text = stringValue };
            options.Add(item);
        }
    %>

    <%= Html.DropDownList("yourName", options) %>

This renders:

<select id="yourName" name="yourName">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文