Nvelocity - создать случайное число

Работаю над проектом, в котором мне просто нужно сгенерировать случайное число с помощью NVelocity на странице, не редактируя код C #. Я новичок в NVelocity, просмотрел всю сеть, но не нашел ответа.

Любая помощь приветствуется.

ПРИМЕЧАНИЕ. Пользователю, который пометил этот вопрос как возможный повторяющийся. Я попытался адаптировать решение Velcocity / Java, указанное в этом ответе, для соответствия NVelocity / C #, но безуспешно. Я предполагал, что ответ будет другим.


person GeekInTheBox    schedule 16.08.2016    source источник
comment
Возможный дубликат Скорость - генерация случайных чисел в шаблоне   -  person Andrew Morton    schedule 16.08.2016


Ответы (1)


NVelocity не имеет встроенной поддержки для генерации псевдослучайных чисел, однако, если вы создадите новый System.Random и добавите его в VelocityContext, вы сможете получить к нему доступ из шаблона.

VelocityEngine velocityEngine = new VelocityEngine();
velocityEngine.Init();

VelocityContext context = new VelocityContext();
context.Put("random", new Random());

using (StringWriter sw = new StringWriter())
{
    for (int i = 0; i < 5; i++)
    {
        velocityEngine.Evaluate(context, sw, "", "$random.Next(1, 100)\n");
    }

    Console.WriteLine(sw.ToString());
}
person Jonathon Rossi    schedule 17.08.2016