2011-01-05 28 views
88

Không có nhiều may mắn, tôi có những điều sau nếu/else trong Razor mà hoạt động hoàn hảoRazor Nếu cú ​​pháp/Else nhà điều hành có điều kiện

<small> 
    @if(deletedView){ 
    @:Deleted 
    } 
    else { 
    @:Created 
    } by 
</small> 

Tôi cố gắng để làm một cái gì đó như thế này:

<small> 
    @(deletedView) ? @:Deleted : @:Created by 
</small> 

Nhưng điều đó không thành công. Cú pháp thích hợp là gì?

+3

http://stackoverflow.com/questions/4091831/how-to-use-ternary-operator-in-razor-specifically-on-html-attributes –

+0

u người đàn ông. cảm ơn bạn –

+0

mmhh, không thể đóng câu hỏi của riêng tôi. –

Trả lời

169

Bạn cần đặt toàn bộ biểu thức bậc ba trong dấu ngoặc đơn. Thật không may đó có nghĩa là bạn không thể sử dụng "@:", nhưng bạn có thể làm điều gì đó như thế này:

@(deletedView ? "Deleted" : "Created by") 

Razor hiện hỗ trợ một tập hợp con của C biểu thứC# mà không sử dụng @() và không may, các nhà khai thác ternary không nằm trong bộ đó.

+0

@David Lively đã được trả lời bằng cảm ơn :) Ít nhất có thể "đóng" câu hỏi ngay bây giờ ... –

+3

+1 cho 'Razor hiện hỗ trợ một tập con của biểu thức C# mà không sử dụng @()' đã tự hỏi tại sao @if (điều kiện) { đã cho tôi một lỗi – Tom

+0

@Andrew Y tá, Như bạn đã đề cập, "Dao cạo hiện đang hỗ trợ một tập con của biểu thức C# mà không sử dụng @() và không may, các toán tử bậc ba không phải là một phần của tập hợp đó". Tôi muốn biết tất cả các nhà khai thác là một phần của bộ đó? Cảm ơn! – Vikram

Các vấn đề liên quan