2011-08-17 38 views
24

Tôi có một mẫu dao cạo như bên dưới. Tôi muốn kiểm tra nếu giá trị trong trường đầu vào là null, đặt một chuỗi rỗng, nếu @UIManager.Member.EMail có một giá trị, đặt giá trị của nó. Làm thế nào tôi có thể làm điều đó?Nếu giá trị là null đặt một chuỗi rỗng trên mẫu dao cạo?

Bình thường Input:

<input name="EMail" id="SignUpEMail" type="text" class="Input" 
     value="@UIManager.Member.EMail" validate="RequiredField" /> 

Razor Cú pháp Attempt:

<input name="EMail" id="SignUpEMail" type="text" class="Input" validate="RequiredField" 
     value="@(UIManager.Member == null) ? string.Empty : UIManager.Member.EMail" /> 

Giá trị được thể hiện trong các lĩnh vực đầu vào là:

True ? string.Empty : UIBusinessManager.MemberCandidate.EMail 
+1

càng lâu càng UIManager và UIManager.Member đều là phòng không null, này đã phải làm việc ... có thể giúp bạn làm rõ? –

+0

Trên thực tế @ UIManager.Member ban đầu là null. Nó nhận được giá trị của nó sau một hoạt động postback. Vì vậy, nó không hoạt động, bạn nói đúng. Làm thế nào để kiểm tra nó như vậy? –

Trả lời

45

Nếu âm thanh như bạn chỉ muốn:

@(UIManager.Member == null ? "" : UIManager.Member.Email) 

Lưu ý vị trí của các dấu ngoặc là rất quan trọng; với dao cạo, @(....) xác định phạm vi rõ ràng đối với mã - do đó bất kỳ điều gì bên ngoài dấu ngoặc vuông được coi là đánh dấu (không phải mã).

+0

Cảm ơn. Đây là những gì tôi cần. –

14

Để kiểm tra một số thuộc tính của mô hình trong cshtml.

@if(!string.IsNullOrEmpty(Model.CUSTOM_PROPERTY)) 
{ 
    <p>@Model.CUSTOM_PROPERTY</p> 
} 
else 
{ 
    <p> - </p> 
} 

cách vì vậy tốt nhất để làm điều này:

@(Model.CUSTOM_PROPERTY ?? "-") 
+0

Rất vui vì chúng ta có thể làm điều đó ngay bây giờ, như trong JS. – gdbj

12

Đây là chính xác những gì NullDisplayText tài sản trên [DisplayFormat] attribute là cho.

Thêm này trực tiếp trên mô hình của bạn:

[DisplayFormat(NullDisplayText="", ApplyFormatInEditMode=true)] 
public string EMail { get; set; } 
+1

Tôi tin rằng đây là câu trả lời hay nhất Nếu một cách tiếp cận được xem xét. Sạch hơn và dễ thực hiện hơn nhiều. –

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