Asp.net mvc 如何删除尾随逗号&;在mvc vbhtml视图中生成链接的每个循环中的空间?

Asp.net mvc 如何删除尾随逗号&;在mvc vbhtml视图中生成链接的每个循环中的空间?,asp.net-mvc,vb.net,string,comma,Asp.net Mvc,Vb.net,String,Comma,给定如下循环: @For Each x In item.PostCategory Dim cats = x.CategoryName & ", " @Html.ActionLink(cats, "PostsByCategory", "Posts", New With {.Category = x.CategoryName.ToSeoUrl, .Page = Nothing}, Nothing)

给定如下循环:

  @For Each x In item.PostCategory
          Dim cats = x.CategoryName & ", "
          @Html.ActionLink(cats, 
         "PostsByCategory", "Posts", New With {.Category = x.CategoryName.ToSeoUrl, 
         .Page = Nothing}, Nothing) 
      Next

我只需要删除<强>最后逗号和空间< /强> -我尝试的所有内容都删除中间和结尾的逗号和空格。循环呈现类别,我希望它们用逗号和空格分隔,但不需要或不需要后面的逗号和空格。每个类别都需要是一个单独的链接,因此string.join无法工作。我尝试了Trim.Sub字符串,它删除中间的逗号。TrimEnd不起作用。我已经搜索过了,但没有找到解决方案


而不是世界,科学,-我想要世界,科学

你可以试着检查
x
是否是
后分类
中的最后一项。如果为true,则追加空字符串,否则追加逗号和空格:

Dim cats = x.CategoryName  & IIf(x.Equals(item.PostCategory.Last()), "", ", ")

有很多不同的方法来解决这个问题。你必须决定最好的方法。简单地说,您不能使用foreach,而是使用simple for。然后,通过比较索引和计数以及条件显示或不显示逗号,可以很容易地判断您是否在最后一项上

或者,您可以构建一个字符串值列表,该代码将直接呈现给页面,然后使用
string.Join
来连接由
,“
分隔的列表项
string.Join
从不在结尾追加分隔符,这样可以解决问题


您还可以使用某种编辑器模板或局部视图,甚至创建一个
HtmlHelper
扩展。如果只是取决于你想如何处理它

我得到一个错误-'Operator'='没有为'be_Categories'和'be_Categories'类型定义