ASP.NET MVC显示列长度

时间:2011-12-15 21:05:41

标签: asp.net-mvc razor

我想使用if / else语句来呈现我的数据。当列长度超过30个字符时,我想在此列上使用substring函数,并使用' ...'呈现更短的数据。但它不起作用

@if (item.BOOK_Title.Length >= 30)
{

    @{var display = item.BOOK_Title.Substring(0,30)+"...";}
    @Html.DisplayFor(modea => display)

}
else
    @Html.DisplayFor(modea => item.BOOK_Title)

请帮助,我不知道我的代码有什么问题。

3 个答案:

答案 0 :(得分:2)

你只需要为else添加大括号。

@if (item.BOOK_Title.Length >= 30)
{
    var display = item.BOOK_Title.Substring(0,30)+"...";
    <text>@display</text>
}
else
{
    <text>@Html.DisplayFor(modea => item.BOOK_Title)</text>
}

答案 1 :(得分:1)

你可能会发现使用Razor“Helper Function”更好,请参阅http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx

由于您可能会在多个地方使用它,因此可以很好地使用它们。

答案 2 :(得分:0)

在剃须刀中,你的积木需要括号:

@if (item.BOOK_Title.Length >= 30)
{
    var display = item.BOOK_Title.Substring(0,30)+"...";
    Html.DisplayFor(modea => display)
}
else
{
    Html.DisplayFor(modea => display)
}