2011-12-15 113 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) 
}