首页 > 解决方案 > 网站刷新后保存随机数值

问题描述

嘿,我创建了一个有问题的数据库。每个问题都有一个唯一的 id (.ID),随机生成器随机选择数字,然后选择具有该数字 (id) 的问题并出现在网站上。

到目前为止一切顺利,但我希望每个问题都出现一次。遗憾的是,每个用户请求都是唯一的,因此不会记住这些值。

有没有一种简单的方法可以在我的代码中实现这一点,当我的表单被传输时,我的网站仍然可以识别之前的代码。

var questions = from m in _context.Question
                                select m;

var rowsTaken = new HashSet<int>();
Random r = new Random();

int rndRowIndex = r.Next(1, 10);


if (!string.IsNullOrEmpty(QuestionLayer))
{
    do
    {
        questions = questions.Where(x => x.ID == rndRowIndex);
        //questions = questions.Where(x => x.Layer == QuestionLayer);
    } while (listids.Contains(rndRowIndex));
    listids.Add(rndRowIndex);
}

标签: c#htmlasp.net-coreweb

解决方案


关于随机数生成器的快速回答是否定的。但是,您可以通过在数据库中标记它们来跟踪已回答或显示的问题。然后在生成随机数时检查与该数字相关的问题。如果已回答/显示已经为下一个问题生成另一个数字,或者使用生成的第一个数字查看下一个问题和下一个直到,依此类推,直到找到下一个未回答的问题。When a question is chosen for display mark it in database as having been displayed.

回答完所有问题后,将所有问题标记为未回答。


推荐阅读