When we create an ASP.NET MVC web application, the model (an object) is the easiest way to return values from the view to the controller.
For the view to be able to return the values in the model, make sure the model contains properties, not fields, for every value with { get; set; }
public class MyViewModel { public string ID { get; set; } }
Add the model to the view at the top of the .cshtml file
IMPORTANT!!! To return values for properties that do not have controls on the page, like IDs that are not displayed, add a hidden field to the view.
@model MyViewModel <form asp-action="Index" asp-controller="My"> <input asp-for=@Model.ID type="hidden" > </form>
Send the data in the model to the view from the get method in the controller
public class MyController : Controller { public IActionResult Index() { MyViewModel model = new MyViewModel(); model.ID = "MY_ID"; return View(model); } }
Read the value from the model in the post method of the controller and send the model back
public class MyController : Controller { [HttpPost, ValidateAntiForgeryToken] public IActionResult Index(MyViewModel model) { string ID = model.ID; ... return View(model); } }