在Asp.net MVC中,Razor在文本块之间插入了额外的空间.我想以这种方式呈现一个列表:"1,2,3"但得到"1,2,3".
@for (int i = 1; i < 3; i++)
{
<text>@i</text>
if (i != 2)
{
<text>, </text>
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法删除额外的空格?
您看到数字和逗号之间有额外的空格,因为您的剃刀模板在数字和逗号之间包含换行符(在浏览器中显示为空格):
@for (int i = 1; i < 3; i++)
{
<text>@i</text> >LINE BREAK HERE<
if (i != 2)
{
<text>, </text>
}
}
Run Code Online (Sandbox Code Playgroud)
我喜欢Darin的答案,我建议删除你的循环并用更具说明性的语句替换它,但是如果你不想那么远,请尝试至少删除换行符:
@for (int i = 1; i < 3; i++)
{
<text>@i</text>if (i != 2){<text>, </text>}
}
Run Code Online (Sandbox Code Playgroud)
我想以这种方式呈现一个列表:"1,2,3"
又快又脏:
@string.Join(", ", Enumerable.Range(1, 3))
Run Code Online (Sandbox Code Playgroud)
显然,自定义帮助程序似乎更适合在视图中格式化某些内容的工作:
public static class HtmlExtensions
{
public static IHtmlString FormatList(this HtmlHelper html, IEnumerable<int> list)
{
return MvcHtmlString.Create(string.Join(", ", list));
}
}
Run Code Online (Sandbox Code Playgroud)
然后简单地说:
@Html.FormatList(Model.MyList)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7674 次 |
| 最近记录: |