c# - 网站刷新后保存随机数值
问题描述
嘿,我创建了一个有问题的数据库。每个问题都有一个唯一的 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);
}
解决方案
关于随机数生成器的快速回答是否定的。但是,您可以通过在数据库中标记它们来跟踪已回答或显示的问题。然后在生成随机数时检查与该数字相关的问题。如果已回答/显示已经为下一个问题生成另一个数字,或者使用生成的第一个数字查看下一个问题和下一个直到,依此类推,直到找到下一个未回答的问题。When a question is chosen for display mark it in database as having been displayed.
回答完所有问题后,将所有问题标记为未回答。
推荐阅读
- html - 将背景图片定位在 CSS 底部
- python - Python xml - 删除空格以获取对齐的 xml 文档
- javascript - 添加自定义标签会停止呈现页面
- oracle - 我想在 PL/SQL 中解决这个问题 EXCEPTION 命令不起作用
- database - 基于条目更新周期开始日期的算法
- c# - 从与 C# 中的 alt 值匹配的字符串中删除整个 img 标记
- pdf - 使用 syncfusion 库生成 pdf 文件 xamarin.forms
- flutter - 如何在动画列表中维护小部件的状态
- javascript - NuxtJS 和 Firebase:错误:[vuex] 不会在突变处理程序之外改变 vuex 存储状态
- r - 如何在 A Shiny 应用程序中将徽标图像添加到 rmarkdown pdf