Sólo mis dos centavos, pero siempre utilizar la vista de los modelos para pasar los datos a mis puntos de vista. Incluso si es tan simple como necesitar un int
como la identificación.
Hacer esto hace que el acceso a este valor sea trivial, ya que MVC hace todo el trabajo por usted.
Por lo que vale la pena Me suelen name mis modelos de vista, tales como:
{Controller}{ViewName}ViewModel
Esto ayuda a mantener las cosas organizadas a escala.
Un ejemplo:
// ~/ViewModels/HomeEditViewModel.cs
public class HomeEditViewModel
{
public int Id { get; set; }
}
// ~/Controllers/HomeController.cs
public IActionResult Edit(int id)
{
return View(new HomeEditViewModel() { Id = id });
}
// ~/Views/Home/Edit.cshtml
@model HomeEditViewModel
<h1>Id: @Model.Id</h1>
¿Por qué no desea agregar al diccionario ViewData? Ese es el mecanismo que se proporciona para exactamente lo que está describiendo. –