“Class” es una palabra reservada y no se puede usar en expresiones implícitas. Se debe utilizar una expresión explícita (“@()”). VS 22
Visual Studio 2022,
Este código causó una excepción en la vista Razor:
object htmlAttr = null;
if (Model.ResourceInfo.Id > 0)
{
htmlAttr = new {@class = "form-control", @readonly = "readonly", @disabled ="disabled"};
}
else
{
htmlAttr = new { @class="form-control" };
}
davy.ai
La imagen muestra una excepción que se produce en la vista Razor debido al código proporcionado. El código asigna un valor nulo al objeto “htmlAttr” y luego verifica si la propiedad “Id” del objeto “ResourceInfo” en el Modelo es mayor que 0. Si es así, el objeto “htmlAttr” se inicializa con propiedades que incluyen “class”, “readonly” y “disabled”. Si la propiedad “Id” no es mayor que 0, el objeto “htmlAttr” se inicializa solo con la propiedad “class”. El problema con este código es que falta el símbolo “@” en las propiedades “readonly” y “disabled”, lo que causa un error de sintaxis. Para solucionar este problema, se debe agregar el símbolo “@” antes de cada una de estas propiedades de la siguiente manera: