2011-03-14 56 views
0

喜 我有一個名爲isEnglishMVC,使有條件的輸出最簡單的方法

變量,如果這是真的,我想輸出是這樣的:

<div orientation="left"> </div> 

否則:

<div orientation="right"> </div> 

下面的代碼無法編譯:

<div orientation="<%=isEnglish?? %>left<%:%>right<% %>"> </div> 

我知道一種很長的方式,通過使用(if)和Writer.Write方法

還有另一種簡單的方法嗎?

回答

3
<div orientation="<%= isEnglish? "left" : "right" %>"> </div> 
+0

hhhhhhh形式,我怎麼這麼笨我,我怎麼會錯過這個! – 2011-03-14 14:16:38

3

你可以使用一個條件語句:

<div orientation="<%= isEnglish ? "left" : "right" %>"></div> 

或者,最好是(至少對我來說),你會從視圖中完全刪除這一邏輯並創建一個視圖模型。然後,您可以將邏輯放置在Model和ViewModel之間的映射中。

這樣,在你查看你沒有意大利麪條的代碼。它看起來是這樣的:

<div orientation="<%= Model.Orientation %>"></div> 
+0

你是對的,但我討厭看到控制器生成的html代碼,我的意思是,當你檢查英語的變量,並填寫與像(右)的字符串視圖模型,並把它傳遞給視圖。我對嗎 ? – 2011-03-14 14:27:09

+0

@Nour Sabouny - 你不會產生控制器整片的標記。你只是簡單地填充字符串「左」或「右」。 – 2011-03-14 14:27:57

+0

OK,認爲這是另外一個問題,是不是正確填寫控制器的ASP視圖的一部分?我知道在我的情況下,我不必,但正如你所建議的,有時你會發現自己有義務這樣做! – 2011-03-14 14:44:43

1

你想要的代碼是這樣的:

<div class="<%= isEnglish ? "left" : "right" %>"></div> 

但是如果你使用MVC,更清潔的語法檢查剃刀。