TempData Peek Issue

48 views Asked by At

I am using TempData for temp storage of a list item. I have used below code in program.cs

builder.Services.AddSingleton<ITempDataProvider, CookieTempDataProvider>();
builder.Services.AddSession();

//Other middleware

app.UseSession();

On a get request i have created a view model and stored the data from viewmodel into Tempdata as given below

 TempData["vMClient"] = JsonConvert.SerializeObject(vMClient);
 return View(vMClient);

Now whenever i am using Tempdata.Peek method my browser is throwing error code 431

View Page Code.

@model VMClient
@{
    var a = @TempData.Peek("vMClient");    
}

Error Link Image

Kindly help me to resolve this issue.

1

There are 1 answers

3
Jackdaw On

Seems like the HTTP Error 431 is caused by passing the vMClient parameter to the view: it exceeded header size. And you don't need to do that, because this data is already passing by the TempData. What you need is to use DeserializeObject().

Try the following. In the action method:

 TempData["vMClient"] = JsonConvert.SerializeObject(vMClient);
 return View();

In the view:

@using Newtonsoft.Json
@model VMClient
@{
    var data = JsonConvert.DeserializeObject<VMClient>(TempData.Peek("VMClient").ToString());      
}