C# 如何使用部分视图动态填充列表Asp.net mvc

C# 如何使用部分视图动态填充列表Asp.net mvc,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,在我的web应用程序中,用户可以添加新选项卡 TabModel { public string TabName {get; set;} public List<SubTabModel> Subs {get; set;} } 如何执行添加子选项卡的用途,获得需求属性的全部功能,并将此选项卡模型与其子选项卡一起发布并继续 SubTabModel { public string SubTabName {get ; set;} public T RelatedModel {get ;

在我的web应用程序中,用户可以添加新选项卡

TabModel 

{
public string TabName {get; set;}
public List<SubTabModel> Subs {get; set;}
}
如何执行添加子选项卡的用途,获得需求属性的全部功能,并将此选项卡模型与其子选项卡一起发布并继续

SubTabModel
{
public string SubTabName {get ; set;}
public T RelatedModel {get ; set;}
}
您需要使用与通用相关的mvc模型,您可以应用验证。
你可以这样做。

我希望以下内容能对你有所帮助

局部视图

@model List<TabModel>

@{
    <ul>
        @foreach (var item in Model)
        {
            <li>
                <a>@item.TabName</a>
                @if (item.Subs != null)
                {
                    <ul>
                        @foreach (var subItem in item.Subs)
                        {
                            <li>
                                <a>@subItem.SubTabName</a>
                            </li>
                        }
                    </ul>
                }
            </li>
        }
    </ul>
}

有关一些选项,请参阅和。此逻辑不允许我按用户动态添加子选项卡。它将用于显示或编辑。因为名单上也加了。我需要一些类似以下的逻辑`Html.Textboxfor(m=>m.add(新的子模型{Name})或somehow@AlexandrSargsyan,是否要从局部视图添加新的子菜单?我想使用Technic,可能是局部视图,可能不是,我使用一些jquery功能(如clone element)进行操作,但问题是,克隆相同的局部视图并将名称索引n更改为n+1,例如:SubTabModel[0]。名称更改为sub.TabModel[1].Name,它可以正常工作,在模型中绑定工作,我的列表中填充两项,但在本例中,Requirement属性仅适用于第一个元素。
@model List<TabModel>

@{
    <ul>
        @foreach (var item in Model)
        {
            <li>
                <a>@item.TabName</a>
                @if (item.Subs != null)
                {
                    <ul>
                        @foreach (var subItem in item.Subs)
                        {
                            <li>
                                <a>@subItem.SubTabName</a>
                            </li>
                        }
                    </ul>
                }
            </li>
        }
    </ul>
}
   return PartialView("PartialViewName", TabModel);