2012-09-12 52 views
7

在我的控制,我和內聯如果聲明:內聯如果Razor視圖

ViewBag.NameSortParam = If(String.IsNullOrEmpty(sortOrder), "Name desc", "") 

在我看來,我似乎無法使用內聯,如果:

@Code 
    If(True, true, true) 
End code 

它說, 「如果必須以匹配的結束符結束。」爲什麼我不能在這裏使用內聯?謝謝。

+0

是的,這是令人沮喪的。很高興你問了這個問題! – CokoBWare

回答

10

嘗試

@Code 
    @(If(True, true, true)) 
End Code 
+1

這看起來像答案。我想知道爲什麼需要括號?謝謝你。 – user1477388

+1

可能只是一個解決它的工作。或者使用'IIf(true,「」,「」)' –

+1

IIF已過時,據我所知http://stackoverflow.com/questions/28377/iif-vs-if – user1477388

0

你可以使用IIf,你不需要用@Code部分雜亂代碼:

@IIf(String.IsNullOrEmpty(sortOrder), "Name desc", "") 
+0

謝謝,但我相信IIF已經過時。見http://stackoverflow.com/questions/28377/iif-vs-if – user1477388

9

你可以使用這樣的事情:

@(true? "yes": "no") 
+2

我懷疑你可以在VB.NET中使用這樣的東西。 –

+1

我沒有注意到VB.NET標記,所以這可能只適用於C#。 –

+0

修復它爲VB.net然後 –

3

你可以做一個內聯,如果在這樣的vb.net:

@(If(testExpression, TruePart, FalsePart)) 
+0

這是唯一一個爲我工作。謝謝。 – camainc