【发布时间】:2020-05-12 21:44:38
【问题描述】:
我正在使用 Umbraco,它使用 MVC Razor。但是这个问题是一个通用的 C# .Random() 问题。
我从“特色项目”列表中随机抽取。我得到列表,找到下一个然后显示它。但是,这会拉动每次浏览器刷新。我需要的是让“特色项目”显示一整天,然后在第二天从列表中拉出一个新的随机项目。
到目前为止,我拉随机节点的代码如下。我如何将其扩展为每天只拉一次随机项目,然后第二天拉一个新项目。这可以仅使用 C# 完成,还是 Javascript 将成为更好的途径。 我都想到了,但是我将如何使用 C# MVC Razor 每天进行一次随机拉取?
var random = new Random();
var fCollectList = Umbraco.Content(7471).Descendants("featuredItem");
int index = random.Next(fCollectList.Count());
//NEED TO SHOW THE SAME ONE FOR EVERYONE ON A DAY, THEN THE NEXT DAY SHOW ANOTHER RANDOM ONE.
<p>@fCollectList[index].Name</p>
【问题讨论】:
-
您应该将该值缓存为 24 小时到期。
-
我将如何缓存该值? C#,Javascript。我不知道如何在 C# 中做到这一点
-
单例模式搜索吧
-
无论如何,你都注定要尝试一些可靠的搜索
-
如果你在 umbraco 你可以使用这个助手:@Html.CachedPartial("PartialView", MyModel, 3600, true);