2016-08-17 42 views
0

我建立在CSHTML結構簡單,沒有版本號:如果沒有版本號存在,設置字符串爲空,否則將與版本信息的鏈接設置字符串,如果在剃刀存在HTML

<label style="float:right;"> 
    Version: @resp.VersionNumber 
    @if (string.IsNullOrEmpty(@resp.VersionNumber)) 
    { 
     @resp.VersionNumber == ""; 
    } 
    else 
    { 
     <a>Version link code</a> 
    } 
</label> 

RESP是JsonResponce局部變量,而VersionNumber是JsonResponce類的字符串Datamember。

雖然它看起來非常容易,但它返回的錯誤讓我撓了腦袋。

錯誤在if語句中。我嘗試在()中包含行被that thread中接受的答案所暗示,但它返回了編譯錯誤,如that post。在這兩種情況下的結構都與我的有所不同,所以我不能完全應用這些結構。

如果我保留原來的內容,則返回編譯錯誤invalid expression term ==expected ;,即使我已經擁有了它。

我明白,我可能失去了一些東西簡單,但可以請你點我應該怎麼改變,以消除這些錯誤我的代碼。並簡要解釋它爲什麼這樣做,因爲我也想從這個問題中學習。

我是該領域的初學者自學者,所以請對我輕鬆一點。非常感謝你!

UPDATE

根據每個人提出的建議,我重新安排我的代碼,而現在它看起來像下面

<label style="float:right;"> 
    Version: 
    @if (string.IsNullOrEmpty(resp.VersionNumber)) 
    { 
     <span></span>; 
    } 
     else 
    { 
     @resp.VersionNumber 
     <a>Version link code</a> 
    } 
</label> 
+1

'='是用於分配值,''==是用於比較的值。 – David

回答

2

你有幾個錯誤。首先,你在不屬於的地方擁有@,因爲你已經在代碼塊中了。當您最有可能需要賦值(=)時,可以使用比較(==)。您還首先輸出該值,然後想修改它。

最有可能你是這樣的事情

<label style="float:right;"> 
    Version: 
    @if (string.IsNullOrEmpty(resp.VersionNumber)) 
    { 
    <span>No version number!</span> 
    } else { 
    <a>Version link code</a> 
    } 
</label> 

這樣你檢查它是否存在後,如果你不只是輸出的文本,如果它這樣做,你怎麼想的鏈接。

+0

你的回答是最接近給我想要的結果。我將編輯我的帖子,並在限制結束後接受您的答案。 –

+0

另外,你能簡單地解釋一下這整個@錯位或指向我的一些好消息嗎? –

+1

@VadzimSavenok @啓動一個代碼塊,所以你只能用它。在代碼中間你不需要它。良好的起點http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-c –

0

這將只顯示相關的信息的版本,如果版本號存在

<label style="float:right;"> 
    @if (!string.IsNullOrEmpty(resp.VersionNumber)) { 
     Version: @Html.ActionLink(resp.VersionNumber, "actionName", "controllerName") 
    } 
</label>