sintaxis pages mvc cshtml code c# asp.net-mvc razor

c# - pages - razor views



''System.Dynamic.DynamicObject'' no contiene una definiciĆ³n para ''PropertyName'' (2)

su código está bien, ViewBag tiene propiedades dinámicas, y en Runtime todas las propiedades están siendo asignadas.

Esta excepción es una excepción común de CLR. Intente hacer los siguientes pasos, funcionará, espero. Abrir Visual Studio

  • Depurar -> Excepciones -> (Desmarcar) Excepciones de Common Language Runtime

si aún se presentan problemas

  • Herramientas -> Opciones -> Depuración (Expandir) -> General -> (Verificar) Habilitar solo mi código

Espero que ayude, está funcionando para mí

Haga clic aquí para obtener imágenes detalladas

Me he enfrentado con el siguiente problema:

Estoy intentando ejecutar el sitio de .NET MVC para usar ViewBag para pasar algunos datos a mi Vista. Aquí está el método donde configuro el VeiwBag.

[HttpGet] [AllowAnonymous] public ActionResult Start() { ViewBag.BanReason = null; int userId; //Request with UserId, display ban reason if necessary if (Request.Params["UserId"] != null && int.TryParse(Request.Params["UserId"], out userId)) { ViewBag.BanReason = CheckIfUserBanned(userId); } ViewBag.Users = MvcApplication.Users; return View(); }

Cuando asigno valor al ViewBag (por ejemplo, ViewBag.BanReason = null;) obtengo la RuntimeBinderException con el mensaje

''System.Dynamic.DynamicObject'' no contiene una definición para ''BanReason''.

Estoy usando Visual Studio 2012 con .NET 4.5 y servidor IIS local con ApplicationPool con .NET 4.0. En la otra computadora con la misma configuración, todo funciona bien y no se lanzan excepciones.

No aconseje el uso de otras técnicas como ViewData [""] y Crear un modelo separado, no quiero cambiar el código que funciona bien en la otra máquina.

Creo que este es un problema de configuración incorrecta. Cualquier adivinación será apreciada. Gracias


Creo que este es su problema de otra respuesta :

Como podemos ver en sus comentarios, está configurando ViewBag.Message en otro controlador. ViewBag es solo para los datos de la vista configurada por el controlador que sirvió la vista.

Si necesita enviarlo desde otro controlador, debe usar un parámetro en su método de acción, luego puede establecer el ViewBag.Message en el parámetro transmitido.

ViewBag RuntimeBinderException (MVC 4, ASPX)