gpt4 book ai didi

asp.net-mvc-3 - 添加属性以选择列表选项

转载 作者:行者123 更新时间:2023-12-03 14:30:15 25 4
gpt4 key购买 nike

我在 Razor View 中的下拉列表中有一个项目列表。在数据库中,每个项目都有 3 个与之关联的值 - 数据库 ID、短名称(用于显示)和长名称(用于传递给服务)。下拉列表必须显示短名称,因此我使用数据库 id 作为值和短名称作为文本填充下拉列表。

但是,当用户选择一个项目时,我需要将长名作为使用jQuery作为查询参数作为查询参数,例如,当Cortina被选择“Ford Cortina 1979蓝色”时,需要传递给服务。我的第一个想法是将长名称存储为数据破折号属性,但我想知道是否有更好的方法。所以

  • 如何在下拉列表中存储所有 3 个值?
  • 如果我确实使用数据破折号属性,我如何将所有 LONG_NAME 值合并到 Html.DropDownListFor 或以某种方式将它们添加到下拉列表中?

  • D B:
    CARID SHORT_NAME LONG_NAME
    1 Viper Dodge Viper 1982
    2 Boxster Porsche Boxster 2009 Black
    3 Cortina Ford Cortina 1979 Blue

    用于创建下拉列表的 Controller 助手:
    public static IEnumerable<SelectListItem> GetSelectList(this IEFRepository repository, string typeName)
    {
    var vehicle = repository.TypeTypes.FirstOrDefault(t => t.Name.ToUpper() == typeName);
    if (vehicle != null)
    {
    var carList = vehicle.SubTypes.ToList().OrderBy(s => s.Name);
    var selectList = new SelectList(subTypeList, "SubTypeID", "Name");

    return selectList;
    }
    }

    这是我用来创建下拉列表的代码:
    <div class="editor-field">
    @Html.DropDownListFor(model => model.CarID,
    new SelectList(ViewBag.Cars, "Value", "Text", "1"))
    @Html.ValidationMessageFor(model => model.CarShortName)
    </div>

    这是输出:
    <select id="CarID" name="CarID" data-val="true" data-val-number="The field CarID must be a number." data-val-required="The CarID field is required.">
    <option value="2">Boxster</option>
    <option value="3">Cortina</option>
    <option selected="selected" value="1">Viper</option>
    </select>

    最佳答案

    每个人都忘记了解决这些问题的“经典”方法:使用 foreach循环并实际编写输入html。唯一的缺点是你必须添加自动属性的东西(比如验证等),这取决于你的目的可能没什么大不了的。

    就像是:

    <select> // add other attributes as expected
    @foreach(var type in Model.MyFancyTypes) {
    <option value="@type.SubTypeID" data-description="@type.Description"
    @if(ViewBag.TypeSelected == type.SubTypeID) {
    selected="selected"
    }>@type.Name</option>
    }
    </select>

    关于asp.net-mvc-3 - 添加属性以选择列表选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11285303/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com