Mvc retiene valores después de la devolución

Tengo una clase TestController simple y un modelo de usuario:

public class TestController : Controller
{
    public ActionResult TestAction()
    {
        return View();
    }

    [HttpPost]
    public ActionResult TestAction(User user)
    {
        return View();
    }
}

public class User
{
    public int Id { get; set; }

    public string Name { get; set; }

    public int Age { get; set; }
}

Esta es mi forma:

Hasta donde yo sé, MVC no tiene estado y no tiene un concepto de estado de vista. Pero después de publicar los datos en mi controlador y cuando devuelvo la vista, todos mis datos están allí. Espero campos vacíos pero todos están llenos de los datos publicados. No pude entender cómo MVC conoce los valores después de la devolución de datos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta