NAVBAR

Agregar modelo de datos a layout

Supongamos que tenemos que agregar al layout(Layout.cshtml o cualquier otro master que tengamos) datos dinamicos como puidera ser un MENU, nombre de usuario,etc; Osea agregar un modelo para el layout.


Bueno no se si sea la forma mas correcta, pero lo que ago es lo siguiente.

En el Controlador:

Agregamos un metodo, que nos debuelba el tipo de entidad de el stored o tabla que querramos llamar. En este caso es un storedProcedure
public class MyController : Controller
	{
    	private myModel db = new MyModel();
        		
    	public SP_MyStoredProcedure_Result MyEntidad(int? id)
    	{
       		List MyEntidad = db.SP_MyStoredProcedure(id).ToList();
          		
       		return (MyEntidad[0]);
    	}
    	//...
    	//Demas codigo del controlador
    	//...
    }
		

En el _Layout.cshtml:

Creamos una variable para que contenga el modelo, creamos una instancia de nuedtro controlador y por ultimo agregamos el metodo que traera los datos para llenar la entidad.
@{
	var Myobjeto = new MyController();
    var model = (SP_MyStoredProcedure_Result)Myobjeto.MyEntidad(id);
}
          
<!DOCTYPE html>
<html lang="en">
<head>

	//...
    	//Demas codigo HTML del Layout
    	//...
		

En el _Layout.cshtml al utilizarlo:

Despues de que ya tenemos el modelo, ya lo podemos utilizar como cualquier vista, por ejemplo.
<div class="profile-data">
    <div> class="profile-data-name">@Html.DisplayFor(Model => model.strNombre)</div>
	<div> class="profile-data-title">@Html.DisplayFor(Model => model.strRazonSocial)</div>
</div>