C# 在MVC中将列表内联显示为文本
我在ViewModel中有一个项目列表。对于列表中的每个项目,显示为列表。例如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::之后{ 内容:",",; }
@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; }
}