Я довольно новичок в использовании NVelocity. Я пытаюсь редактировать некоторые старые шаблоны для своей компании, и я получаю эту ошибку, которую я не понимаю. ОК, поэтому в шаблоне, если в заказе есть несколько отправлений, тогда отобразите несколько названий отгрузки, и если только один из них отобразит только одно имя отгрузки. когда есть несколько партий, он отлично работает, но когда есть только один, тогда какой-то шаблон не отображает требуемое имя shiment вместо распечатки имени класса.Ошибка шаблона NVelocity в C#
#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
yes ... thats right .... я отредактировал вопрос ... кажется, что его все еще не работает ... –
Я с @jbl, смущенный вашим оператором if, который имеет «> 0», а не "> 1". Вы также отредактировали ошибку в шаблоне, так как теперь отсутствует инструкция #end для foreach. Если вы не знаете, что NVelocity обычно выписывает ссылку на шаблонную переменную (например, «$ order.Shipments [0] .ShipMethodName»), когда что-то является нулевым или неудачным, но не должно выписывать имена типов. Я попробую распечатать «$ order.Shipments [0]» и отладить передаваемые данные. –