Я столкнулся с этим сценарием, когда мне пришлось сделать резервную копию некоторых данных в tempdata и повторно использовать их в последующих представлениях и мастерах в asp.net mvc3.
Поскольку TempData был словарём, мне приходилось использовать пару «ключ-значение», чтобы избежать путаницы и путаницы, я просто использовал GUID в качестве ключа, а необходимые модели сохранялись в виде значений и передавали сгенерированный ключ в качестве ключа в URL-адресе. получить обратно зарезервированные данные на следующем шаге.
Проблема / недостаток в том, что GUID имеет длину 36 символов . Это делает URL действительно большим. Я верю, что все, что мне нужно, это уникальность в некоторой степени, и DateTime.Now.Ticks.ToString("X")
даст ключ, который уникален и никогда не имеет шанса повториться, и он относительно мал с 15 символов .
Однако, даже если я это реализую, вероятность получения абсолютной уникальности не равна 0, так как может быть одновременный запрос доступа к этому в один и тот же момент времени. Итак, мне нужна настройка критического раздела.