2017-05-30 88 views
0

我在Razor視圖中擁有以下代碼,如果第一部分可用,我只想顯示一個地址。MVC Razor條件代碼導致錯誤?

@if (!string.IsNullOrWhiteSpace(Model.Address1)) 
{ 
    @Model.Address1<br /> 
    @Model.Address2<br /> 
    @Model.City, @Model.State @Model.Zip 
} 

但是,它給了我一個設計時錯誤說「無法使用局部變量‘模型’它宣告前」。

我已經做了一些關於語法的搜索,並且據我所知它看起來是正確的,但顯然我錯過了一些東西。任何人都可以看到爲什麼這會工作?

UPDATE

這是一個有點笨拙的尋找,但是這是我結束了。

@if (!string.IsNullOrWhiteSpace(Model.Address1)) 
{ 
    @:@Model.Address1<br /> 
    if (!string.IsNullOrWhiteSpace(Model.Address2)) 
    { 
     @:@Model.Address2<br /> 
    }        
    @:@Model.City, @Model.State @Model.Zip 
} 

回答

1

您正在編寫的HTML正在被解析爲C#代碼,結果令人困惑。

代碼塊的內容(例如@if)被解析爲代碼,而不是HTML。

因此,@Model.City, @Model.State @Model.Zip成爲格式不正確的變量聲明。

您需要將其封裝在HTML標籤或<text>中,或在每行前加@: