Вы можете использовать TempData, которая хранит данные до тех пор, пока они не будут прочитаны:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-2.1#tempdata
В ConfigureServices
Функция:
services.Configure<CookieTempDataProviderOptions>(options =>
{
options.Cookie.IsEssential = true;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddSessionStateTempDataProvider();
services.AddSession();
В Configure
функция:
app.UseCookiePolicy();
app.UseSession();
Затем в CreateReport
функция:
public IActionResult CreateReport(int id)
{
TempData["id"] = 1;
return View();
}
Вы можете прочитать это значение в пост-функции:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> CreateReport([Bind("Id_report,Id_user,Id_meme,Description")] MemeReports memeReports)
{
var value = TempData != null ? (TempData["id"]?.ToString() ?? "No TempData Value") : "No TempData";
memeReports.id_meme= value;
if (ModelState.IsValid)
{
db.Add(memeReports);
await db.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(memeReports);
}
TempData должен работать после того, как пользователь примет политику файлов cookie на сайте.