В Контроллере , я сохраняю коллекцию ошибок в cookies
через TempData
var messages = new List<Message>();
...
TempData.Put("Errors", messages);
TempData.Put - это метод расширения
public static class TempDataExtensions
{
public static void Put<T>(this ITempDataDictionary tempData, string key, T value) where T : class
{
tempData[key] = JsonConvert.SerializeObject(value);
}
public static T Get<T>(this ITempDataDictionary tempData, string key) where T : class
{
tempData.TryGetValue(key, out object o);
return o == null ? null : JsonConvert.DeserializeObject<T>((string)o);
}
}
Когда загружено HTML, я вижу
и было создано несколько файлов cookie (Chrome Инструменты разработчика> Приложение> Хранение> Файлы cookie)
Мне кажется, проблема в том, что общий размер файлов cookie достигает некоторого размера Cook ie где-то в пределе.
Итак, я есть два вопроса: можно ли изменить ограничение размера cook ie (например, в web.config)? Можно ли использовать сеанс вместо файлов cookie для TempData
?
Я попробовал второй подход, и если я изменил файл startup.cs
\\ ConfigureServices method
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddSessionStateTempDataProvider();
services.AddSession();
\\ Configure method
app.UseSession();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
TempData все еще использует Cookies, я забыл где-нибудь настройки?