2012-09-12 5 views
7

Trong điều khiển của tôi, tôi có và inline Nếu tuyên bố:Inline Nếu trong Razor Xem

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

Theo quan điểm của tôi, tôi dường như không thể sử dụng inline nếu:

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

Nó nói, "Nếu phải kết thúc bằng Kết thúc nếu phù hợp." Tại sao tôi không thể sử dụng nội tuyến nếu ở đây? Cảm ơn.

+0

điều này thật đáng thất vọng. Rất vui khi bạn hỏi câu hỏi này! – CokoBWare

Trả lời

10

Hãy thử

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

Điều này giống như câu trả lời. Tôi tự hỏi tại sao nó cần dấu ngoặc đơn? Cám ơn vì cái này. – user1477388

+1

Có lẽ chỉ là một công việc xung quanh để làm cho nó hoạt động. Hoặc sử dụng 'IIf (đúng," "," ")' –

+1

IIF đã lỗi thời, theo kiến ​​thức của tôi http://stackoverflow.com/questions/28377/iif-vs-if – user1477388

0

Bạn có thể sử dụng IIf, bạn không cần phải lộn xộn mã của bạn với @Code phần:

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

Cảm ơn bạn nhưng tôi tin rằng IIF đã lỗi thời. Xem http://stackoverflow.com/questions/28377/iif-vs-if – user1477388

9

Bạn có thể sử dụng một cái gì đó như thế này:

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

Tôi nghi ngờ bạn có thể sử dụng một cái gì đó như thế này trong VB.NET. –

+1

Tôi không nhận thấy thẻ VB.NET, vì vậy điều này chỉ có thể hoạt động trong C#. –

+0

Sửa chữa nó là VB.net sau đó –

3

Bạn có thể thực hiện nội dòng nếu trong vb.net như sau:

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

Đây là người duy nhất làm việc cho tôi. Cảm ơn. – camainc