2013-01-14 108 views
4

我剛剛開始使用網頁,我無法弄清楚代碼塊爲什麼不起作用。我需要有條件地顯示WebGrid。我開始之前,我有這樣的:剃鬚刀代碼塊的使用

<div> 
@grid.GetHtml() 
</div> 

現在我嘗試插入一個if語句:

<div> 
    @if (condition) { grid.GetHtml(); } 
</div> 

這導致沒有顯示網格的HTML。事實上,即使沒有if語句,只是一個代碼塊我沒有得到任何的html:

<div> 
    @{ grid.GetHtml(); } 
</div> 

不幸的是我跑的WebMatrix所以我不能調試,但似乎每當我使用的代碼塊中的語句不要」執行。

+0

OK看來我需要使用另一個@符號的HTML輸出:'@if(條件) {@ grid.GetHtml()}' –

回答

3

對於一行語句,您應該使用@符號而不是將其放入代碼塊中。 如果你仍然把它放在一個代碼塊(有些情況下你需要),它不會通過調用grid.GetHtml();來顯示你的網格這就是爲什麼@符號被使用,這意味着你想寫出一些值,但是如果您使用HTML代碼編寫,則只能使用它。當使用一個代碼塊,你一定要告訴這個值應該被寫出來的服務器上,這樣的:

@{ 
this.Write(grid.GetHtml()); 
}