2011-09-23 33 views
5

Điều tôi muốn làm:Làm cách nào để thực hiện mã Dao động nội tuyến trong một số HTML?

<div class='[email protected] (this.Model.quacker) { -noisy }'>quack</div> 

ie. hoặc

<div class='duck'>quack</div> 

hoặc

<div class='duck-noisy'>quack</div> 

Tuy nhiên tôi có thể không nhận được khá đúng cú pháp. Tôi cố gắng @:-noisy nhưng mà tạo ra lỗi như

Hãy chắc chắn rằng bạn có một kết hợp "}" ký tự cho tất cả các "{" nhân vật trong khối này

Tôi cũng đã cố gắng @: - ồn ào @ nhưng cùng một lỗi. Tôi nên làm gì?

Trả lời

5

Phần văn bản < > sẽ chuyển sang HTML một lần nữa. Như thế này:

<div class='[email protected] (this.Model.quacker) { <text>-noisy</text> }'>quack</div> 
+0

Cảm ơn, điều này làm việc tuyệt vời – NibblyPig

+0

của bạn là giải pháp nhưng nó tạo ra một không gian màu trắng. Nên như thế này: '

quack
' – tugberk

+0

@tugberk: Sau đó, kết quả có thể là class = "duck-" thay vì chỉ class = "duck" ... –

1

làm điều này như sau:

@{ 
    var poo = string.Format("{0}{1}", "duck", (this.Model.quacker) ? "-noisy" : ""); 
} 

<div class='@poo'>quack</div> 

CẬP NHẬT

dưới đây là một trong những tạo ra các giải pháp tốt nhất:

<div class='@("duck")@if(this.Model.quacker){<text>-noisy</text>}'>quack</div> 
+0

hiện đã quyết định lấy lại. – tugberk

1

nên như thế này

<div @if(this.Model.quacker) 
{ 
@:class='duck-noisy' 
}else{ 
@:class='duck' 
}>quack</div> 
Các vấn đề liên quan