Luego de mucho luchar pudimos encontrar el resultado de este rompecabezas que muchos usuarios de nuestra web han tenido. Si quieres compartir algún detalle no dudes en compartir tu información.
Solución:
Creo que esto es lo que estás buscando:
<%=Url.RequestContext.RouteData.Values["id"]%>
ViewData es exactamente la forma correcta de hacer esto.
Su otra opción sería pasar un modelo que contenga ID a la vista.
Editar: Sin saber exactamente lo que está tratando de hacer, es difícil dar un consejo más específico. ¿Por qué necesita una identificación, pero no otros datos del modelo? ¿Su controlador realmente solo envía el campo Id a la vista? Es difícil imaginar cuál es el escenario.
Si el valor de ID es realmente la única información del modelo que se pasa a su vista, entonces podría usar la ID como modelo. Entonces el valor de retorno de su método de acción sería View(id)
y no necesitarías usar ViewData.
Agregarlo a los datos de vista es lo correcto. En cuanto a cómo agregarlo, siempre puede agregar un personalizado ActionFilter
que lo toma del diccionario de ruta y lo empuja a la vista de datos.
Comentarios y calificaciones de la guía
Si estás de acuerdo, tienes la libertad de dejar una reseña acerca de qué le añadirías a este enunciado.