簡體   English   中英

C#代碼塊中的Razor語法

[英]Razor syntax in c# code block

嘗試使用以下方法填充表數據:

        @foreach (var mc in Model.McList)
        {
            <tr>
                <td>
                    @(@mc.Amount != null ? @mc.Amount @@ @mc.Price : null)
                </td>
            </tr>
        }

但陷入剃刀語法錯誤:

期望:

期待)

或模棱兩可的調用:無效寫入

金額是整數? 可為null的類型。

@(@mc.Amount != null ? @mc.Amount : null) //works only with one property
@if (@mc.Amount != null) {@mc.Amount <text>@@</text> @mc.Price} //works
@if (@mc.Amount != null) {@mc.Amount @@ @mc.Price} //error
@if (@mc.Amount != null) {@mc.Amount @:@@ @mc.Price} //error

是沒有if的更短方法來檢查null值嗎?

我認為那是不可能的。 如果必須在一行中執行此操作,則我得到的最接近的結果是:

@(@mc.Amount != null ? string.Format("{0} @ {1}", mc.Amount, mc.Price) : null)

我可能永遠不會自己做!

我認為您正在嘗試制作如下所示的內容:

5 @ 20

如果是這樣,您需要記住@()之間的所有內容都是純C#代碼; 您需要做的是這樣的:

@(mc.Amount != null ? string.Format("{0} @ {1}", mc.Amount, mc.Price) : "")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM