我在使用NVelocity時相當新。我正在嘗試爲我的公司編輯一些舊的模板,我收到了這個我不明白的錯誤。在模板中可以,如果訂單有多個貨件,則顯示多個貨件名稱,如果只有一個,則只顯示一個貨件名稱。當有多個貨件時,它可以很好地工作,但是當只有一個貨件時,模板不會呈現所需的貨件名稱,而是打印出類別名稱。c#中的NVelocity模板錯誤
#if($order.Shipments.Count > 1)
#foreach($shipment in $order.Shipments)
#beforeall
#each
$shipment.ShipMethodName <strong>|</strong>
#else
$order.Shipments[0].ShipMethodName // in emails it renders "Orders.OrderShipmentCollection[0].ShipMethodName"
#end
#end
請幫忙。
對不起,如果愚蠢的問題,但你的_else_子句似乎只是處理0貨運的情況。我錯了嗎 ? – jbl
是的......多數民衆贊成在正確的....我編輯了這個問題......它似乎仍然沒有工作...... –
我與@jbl,你的if語句有「> 0」,而不是「> 1」。您還在模板中編輯了錯誤,因爲它現在缺少foreach的#end語句。 如果您不知道,當某些內容爲空或失敗時,NVelocity通常會寫出模板變量引用(例如「$ order.Shipments [0] .ShipMethodName」),但不應寫出類型名稱。我會嘗試打印出「$ order.Shipments [0]」並調試正在傳遞的數據。 –