当我不得不备份 tempdata 中的一些数据并在 asp.net mvc3 中的后续视图和向导中重用它时,我遇到了这种情况。
由于 TempData 是一个字典,我必须使用键值对,以避免混淆和混乱,我只是使用 GUID 作为键,并将所需的模型作为值备份,并将生成的键作为键传递给 URL 以取回在下一步备份数据。
问题/缺点是,GUID的长度为 36 个字符。这使得 URL 非常大。我相信我所需要的只是一定程度上的独特性,并且DateTime.Now.Ticks.ToString("X")
会给出一个独特的、永远没有机会重复的密钥,它相对较小,只有15 个字符。
但是,即使我实现了这一点,获得绝对唯一性的概率也不为 0,因为可能有同时请求在同一时间点访问它。所以,我需要一种关键部分的设置。