Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC中将列表内联显示为文本_C#_Html_Asp.net Mvc - Fatal编程技术网

C# 在MVC中将列表内联显示为文本

C# 在MVC中将列表内联显示为文本,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我在ViewModel中有一个项目列表。对于列表中的每个项目,显示为列表。例如 @foreach (var item in Model.Items) { <li><a href="link">@Html.DisplayFor(m => item.DisplayName)</a> } 您可以使用纯CSS解决方案来实现这一点 ul.cs-list li{ 列表样式:无; 显示:内联块; } ul.cs-list li::之后{ 内容:",",; }

我在ViewModel中有一个项目列表。对于列表中的每个项目,显示为列表。例如

@foreach (var item in Model.Items)
{
  <li><a href="link">@Html.DisplayFor(m => item.DisplayName)</a>
}

您可以使用纯CSS解决方案来实现这一点

ul.cs-list li{
列表样式:无;
显示:内联块;
}
ul.cs-list li::之后{
内容:",",;
}
ul.cs-list li:最后一个孩子::之后{
内容:‘’;
}
ul.cs-list li:n最后一个孩子(2)::之后{
内容:'和';
左边距:2倍;
}
  • 项目1
  • 项目2
  • 项目3
  • 项目4

您可以使用纯CSS解决方案来实现这一点

ul.cs-list li{
列表样式:无;
显示:内联块;
}
ul.cs-list li::之后{
内容:",",;
}
ul.cs-list li:最后一个孩子::之后{
内容:‘’;
}
ul.cs-list li:n最后一个孩子(2)::之后{
内容:'和';
左边距:2倍;
}
  • 项目1
  • 项目2
  • 项目3
  • 项目4

使用foreach内部的and index变量(首先用0初始化)并在每个循环中递增,在此基础上添加一个if语句,将其与Model.Items.Count-1进行比较,将给出该变量是否位于最后一个变量之前的信息。

使用foreach内部的and index变量(首先用0初始化)在每个循环中增加一个IF语句,将它与模型进行比较,将它与模型。ITEM.COUNT-1将给你信息,如果它是最后一个的。

< P>为了实现你想要的输出,我使用了一个计数器变量,用来考虑最后一个元素(它应该加上‘and’word’)。
使用系统;
使用System.Collections.Generic;
公共课程
{
公共静态void Main()
{
//创建模型列表
var lst=新列表();
//在列表中插入元素
lst.Add(新模型{ID=1,Name=“ABC”});
lst.Add(新模型{ID=2,Name=“DEF”});
lst.Add(新模型{ID=3,Name=“GHI”});
添加(新模型{ID=4,Name=“JKL”});
lst.Add(新模型{ID=5,Name=“MNO”});
//获得正确输出的实际逻辑
整数计数=0;
字符串输出=@“”;
foreach(lst中的var currentModel){
if(count==lst.count-1){
输出=输出+”和“+”;
}
否则{
输出=输出+“+”,“;
}
计数++;
}
ViewBag.Links=output;//现在您可以在视图中使用它了
控制台写入线(输出);
}
}
公共类模型{
公共int ID{get;set;}
公共字符串名称{get;set;}
}

<>代码> < p>为了实现你想要的输出,我使用了一个计数器变量,用来考虑最后一个元素(它应该附加“和”字)。
使用系统;
使用System.Collections.Generic;
公共课程
{
公共静态void Main()
{
//创建模型列表
var lst=新列表();
//在列表中插入元素
lst.Add(新模型{ID=1,Name=“ABC”});
lst.Add(新模型{ID=2,Name=“DEF”});
lst.Add(新模型{ID=3,Name=“GHI”});
添加(新模型{ID=4,Name=“JKL”});
lst.Add(新模型{ID=5,Name=“MNO”});
//获得正确输出的实际逻辑
整数计数=0;
字符串输出=@“”;
foreach(lst中的var currentModel){
if(count==lst.count-1){
输出=输出+”和“+”;
}
否则{
输出=输出+“+”,“;
}
计数++;
}
ViewBag.Links=output;//现在您可以在视图中使用它了
控制台写入线(输出);
}
}
公共类模型{
公共int ID{get;set;}
公共字符串名称{get;set;}
}

谢谢。它几乎成功了,除了最后一项没有“和”。请记住,它不是一个静态列表。它是一个列表,显示列表中每个项目的列表项()@foreach(Model.Items中的项目){
  • }@user6950100它应该在最后一个项目之前包含“and”。试着点击“运行代码片段”按钮。对不起,是的,我只是在那部分把类拼错了。谢谢谢谢它几乎成功了,除了最后一项没有“和”。请记住,它不是一个静态列表。它是一个列表,显示列表中每个项目的列表项()@foreach(Model.Items中的项目){
  • }@user6950100它应该在最后一个项目之前包含“and”。试着点击“运行代码片段”按钮。对不起,是的,我只是在那部分把类拼错了。谢谢请注意,“模型-视图-控制器”标记用于回答有关模式的问题。ASP.NET-MVC实现有一个特定的标记。请注意,模型视图控制器标记用于回答有关模式的问题。ASP.NET-MVC实现有一个特定的标记。
    Item 1, Item 2, Item 3 and Item 4.
    
    using System;
    using System.Collections.Generic;
    
    public class Program
    {
        public static void Main()
        {
            //Create List of Model
            var lst = new List<Model>();
    
            //Insert Elements into List
            lst.Add(new Model{ ID = 1, Name = "ABC"});
            lst.Add(new Model{ ID = 2, Name = "DEF"});
            lst.Add(new Model{ ID = 3, Name = "GHI"});
            lst.Add(new Model{ ID = 4, Name = "JKL"});
            lst.Add(new Model{ ID = 5, Name = "MNO"});
    
            //Actual Logic to get proper output
            int count = 0;
            string output = @"";
            foreach(var currentModel in lst){
    
            if(count == lst.Count - 1){
                output = output + "and " + "<a href='link'>" + currentModel.Name + "</a>";
            }
            else{
                output = output + "<a href='link'>" + currentModel.Name + "</a>" + ", ";
            }
            count ++;
        }
            ViewBag.Links = output; //Now you can use it on View
            Console.WriteLine(output);
        }
    }
    
    public class Model{
        public int ID { get; set; }
        public string Name { get; set; }
    }