You need to enable JavaScript to run this app. 如何为dropdownlist设置分类name属性,区分关联的menu、tab、function类型
优惠活动
大模型
产品
解决方案
定价
更多

如何为dropdownlist设置分类name属性,区分关联的menu、tab、function类型

实现方法

你只需要增加3个自增计数器分别对应三类下拉框,同时修改原有select的id/name属性即可,完整修改后代码如下:

@{
    // 声明三类下拉框的计数器,初始值为1
    int menuSeq = 1;
    int tabSeq = 1;
    int funcSeq = 1;
}
<div class="card card-block bg-white">
<label for="permessimenu" class="col-sm-12">Menu</label>
@foreach (var colMenu in ManageMenu.GetAll())
{
    <div class="col-sm-12">
        <div class="col-sm-1"></div>
        <div class="col-sm-4" name="combo_m"><label>@colMenu.Description</label></div>
        <div class="col-sm-2"></div>
        <div class="col-sm-3">
            <!-- 替换为menu类命名规则 -->
            <select class="form-control" style="overflow:auto;" id="combo_menu_@(menuSeq)" name="combo_menu_@(menuSeq)">
                <option id="tipoUtente" value="0">&lt;Permesso&gt;</option>
                @foreach (var menu in Permission.GetAll())
                {
                    <option value="@menu.Id">@menu.Description</option>
                }
            </select>
            @{ menuSeq++; }
        </div>
        <div class="col-sm-2"></div>
    </div>
    @foreach (var colTab in GestioneTab.Select(new WhereStatementBuilder() { { GestioneTab.Empty.IdMenu, Operator.Equals, colMenu.Id.Get() } }))
    {
        <div class="col-sm-12">
            <div class="col-sm-2"></div>
            <div class="col-sm-4">
                <label>@colTab.Description</label>
            </div>
            <div class="col-sm-1"></div>
            <div class="col-sm-3">
                <!-- 替换为tab类命名规则 -->
                <select class="form-control" style="overflow:auto;" id="combo_tab_@(tabSeq)" name="combo_tab_@(tabSeq)">
                    <option id="tipoUtente" value="0">&lt;Permesso&gt;</option>
                    @foreach (var tab in Permission.GetAll())
                    {
                        <option value="@tab.Id">@tab.Description</option>
                    }
                </select>
                @{ tabSeq++; }
            </div>
            <div class="col-sm-2"></div>
        </div>
        @foreach (var colFunzioni in FuncPermission.Select(new WhereStatementBuilder() { { FuncPermission.Empty.IdTab, Operator.Equals, colTab.Id.Get() } }))
        {
            <div class="col-sm-12">
                <div class="col-sm-3"></div>
                <div class="col-sm-4">
                    <!-- 修正原有代码的变量名笔误 -->
                    <label>@colFunzioni.Description</label>
                </div>
                <div class="col-sm-3">
                    <!-- 替换为function类命名规则 -->
                    <select class="form-control" style="overflow:auto;" id="combo_func_@(funcSeq)" name="combo_func_@(funcSeq)">
                        <option id="userType" value="0">&lt;Permesso&gt;</option>
                        @foreach (var user in Permission.GetAll())
                        {
                            <option value="@user.Id">@user.Description</option>
                        }  
                    </select>
                    @{ funcSeq++; }                      
                </div>
                <div class="col-sm-2"></div>
            </div>
        }
    }
}

可选优化

如果你希望命名的序号不随列表排序变化、稳定性更高,可以直接用对应实体的ID代替自增计数器,比如combo_menu_@colMenu.Id,无需维护计数变量也能保证全局唯一。


内容的提问来源于stack exchange,提问作者Rufy04

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 10:24:01