Asp.net mvc MVC视图aspx页面中的递归函数

Asp.net mvc MVC视图aspx页面中的递归函数,asp.net-mvc,Asp.net Mvc,我有一个递归数据结构,我希望ASP.NET在MVC程序的视图部分运行。我不清楚这是否可能。下面是C#中模型类的定义: 公共类递归数据结构 { 公开儿童名单; //有些类是在别处定义的,它是不相关的 公开一些关于我的话题; } ViewModel包含此类的一个实例。在ASP.NET(使用MVC)中有没有一种方法可以遍历模型,这样我就可以进行某种递归HTML生成 如果这个问题措词不当或明显,请道歉。我对MVC非常陌生。如果您尝试渲染层次树,在ASP.NET MVC中有很多方法可以做到这一点。您可以

我有一个递归数据结构,我希望ASP.NET在MVC程序的视图部分运行。我不清楚这是否可能。下面是C#中模型类的定义:

公共类递归数据结构
{
公开儿童名单;
//有些类是在别处定义的,它是不相关的
公开一些关于我的话题;
}
ViewModel包含此类的一个实例。在ASP.NET(使用MVC)中有没有一种方法可以遍历模型,这样我就可以进行某种递归HTML生成


如果这个问题措词不当或明显,请道歉。我对MVC非常陌生。

如果您尝试渲染层次树,在ASP.NET MVC中有很多方法可以做到这一点。您可以使用局部视图进行此操作,如下所示

这是您的简单分层模型

public class HierarchicalModel
{
    public HierarchicalModel()
    {
        this.Children = new List<HierarchicalModel>();
    }

    public String Name { get; set; }
    public List<HierarchicalModel> Children { get; set; }
}
现在,您需要在Views/Shared目录中创建一个名为例如_HierarchicalModel.cshtml的局部视图。用模型所在的命名空间替换MVCAPApplication4

@model MvcApplication4.HierarchicalModel
<li>
    @Model.Name
    <ul>
    @foreach (var item in Model.Children)
    {
        @Html.Partial("_HierarchicalModel", item);  
    }    
    </ul>
</li>
@model mvcapapplication4.hierarchycalmodel
  • @型号.名称
      @foreach(Model.Children中的var项) { @Html.Partial(“\u hierarchycalmodel”,item); }
  • 然后在视图中渲染它

    @{
        MvcApplication4.HierarchicalModel model = ViewBag.HierarchicalModel; 
    }
    
    <p>
        <ul>@Html.Partial("_HierarchicalModel", model)</ul>
    </p>
    
    @{
    MVCAPApplication4.HierarchycalModel模型=ViewBag.HierarchycalModel;
    }
    
    
      @Html.Partial(“\u HierarchicalModel”,model)


    这是一种最简单的方法。在任何情况下,您都必须关注循环引用和深层层次结构。

    如果您尝试渲染层次结构树,在ASP.NET MVC中有很多方法可以做到这一点。您可以使用局部视图进行此操作,如下所示

    这是您的简单分层模型

    public class HierarchicalModel
    {
        public HierarchicalModel()
        {
            this.Children = new List<HierarchicalModel>();
        }
    
        public String Name { get; set; }
        public List<HierarchicalModel> Children { get; set; }
    }
    
    现在,您需要在Views/Shared目录中创建一个名为例如_HierarchicalModel.cshtml的局部视图。用模型所在的命名空间替换MVCAPApplication4

    @model MvcApplication4.HierarchicalModel
    <li>
        @Model.Name
        <ul>
        @foreach (var item in Model.Children)
        {
            @Html.Partial("_HierarchicalModel", item);  
        }    
        </ul>
    </li>
    
    @model mvcapapplication4.hierarchycalmodel
    
  • @型号.名称
      @foreach(Model.Children中的var项) { @Html.Partial(“\u hierarchycalmodel”,item); }
  • 然后在视图中渲染它

    @{
        MvcApplication4.HierarchicalModel model = ViewBag.HierarchicalModel; 
    }
    
    <p>
        <ul>@Html.Partial("_HierarchicalModel", model)</ul>
    </p>
    
    @{
    MVCAPApplication4.HierarchycalModel模型=ViewBag.HierarchycalModel;
    }
    
    
      @Html.Partial(“\u HierarchicalModel”,model)


    这是一种最简单的方法。无论如何,您必须关心循环引用和深层层次结构。

    据我所知,MVC不会自动为您遍历递归结构

    您需要做的是为List或IEnumerable创建一个局部视图,为recursive_data_结构创建另一个局部视图

    在IEnumerable模型的局部视图中:

    @foreach (recursive_data_structure child in Model)
    { 
        @Html.Partial("recursive_data_structureView", child)  
    }
    
    在递归数据结构模型的局部视图中:

    <span>Model</span>
    
    模型
    

    如果您想要绑定到递归数据的treeview,Telerik将其作为免费MVC包的一部分。

    据我所知,MVC不会自动为您遍历递归结构

    您需要做的是为List或IEnumerable创建一个局部视图,为recursive_data_结构创建另一个局部视图

    在IEnumerable模型的局部视图中:

    @foreach (recursive_data_structure child in Model)
    { 
        @Html.Partial("recursive_data_structureView", child)  
    }
    
    在递归数据结构模型的局部视图中:

    <span>Model</span>
    
    模型
    

    如果您想要绑定到递归数据的treeview,Telerik将其作为其免费MVC包的一部分。

    MVCAPApplication4究竟代表什么?它是一个项目名称,在您的情况下,用模型所在的完整名称空间替换它。您还可以使用.Namespace使用指令
    @添加剃须刀
    在这里您可以阅读更多关于它的信息[link]MVCAPApplication4到底代表什么?它是一个项目名称,在您的例子中,用模型所在的完整名称空间替换它。您还可以使用.Namespace使用指令
    @添加剃须刀在这里你可以阅读更多关于它的信息[链接]