2011-12-15 72 views
1

我想使用if/else语句来呈现我的数据。当列长度大于30个字符时,我想在此列上使用substring函数,并使用'...'呈现较短的数据。但它不起作用ASP.NET MVC显示列长度

@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) 

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

+0

你应该提供预期/什么HTML实际产量或错误消息。 “不起作用”对于任何人来说都太过宽泛,无法帮助你。 – SliverNinja 2011-12-15 21:11:28

+1

预计“{”但找到了“@”。块语句必须包含在“{”和“}”中。您不能在CSHTML页面中使用单语句控制流语句。 – lukaszb 2011-12-15 21:24:24

回答

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> 
} 
+0

现在我有错误:“@”字符后出现意外的“{”。一旦进入代码块的正文(@if {},@ {}等),您就不需要使用“@ {”切换到代码。 – lukaszb 2011-12-15 21:36:09

+0

我更新了我的代码来解决这个问题。 – Dean 2011-12-15 21:43:10

0

在剃刀,你的块需要有括号:

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