Si trabajáis con ASP.NET Core MVC, seguro que con frecuencia implementaréis acciones que reciben como argumento objetos complejos, que normalmente vendrán serializados en el cuerpo de la petición como JSON.
Y probablemente, lo habréis hecho esperando que el binder obre su magia y sea capaz de transformar esas secuencias de caracteres procedentes de la red en flamantes instancias de objetos del CLR, listas para ser consumidas desde las aplicaciones. Un ejemplo de acción de este tipo es la siguiente (aunque no funcionaría, luego vemos por qué):
public class FriendsController: Controller
{
[HttpPost]
public string Hello(Friend friend)
{
return $"Hola {friend.Name}, tienes {friend.Age} años";
}
}
public class Friend
{
public int Age { get; set; }
public string Name { get; set; }
}
Sin embargo, a veces nos encontramos con que, a pesar de que la petición contiene en su body los datos JSON esperados, el objeto que recibimos es nulo o tiene todas sus propiedades sin inicializar.
¿Por qué ocurre esto? En este post vamos a ver distintos motivos que podrían llevar a este comportamiento, y cómo solucionar cada caso.
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: aspnet5, aspnetcore, mvc
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Cómo mostrar por consola las líneas que se van añadiendo a logs o archivos de texto, en tiempo real
José María Aguilar - ¿Se pueden introducir directivas o lógica de inicialización en todas las vistas y páginas sin duplicar código?
José María Aguilar
.NET Core / .NET
- Announcing .NET 6 Release Candidate 1
Richard Lander - Introduction to System.Text.Json Through Examples
Marinko Spasojevic - Investigating an infinite loop in Release configuration
Gérald Barré - Getting Started Tweetinvi .NET Twitter
Bradley Wells - Looking inside ConfigurationManager in .NET 6: Exploring .NET Core 6
Andrew Lock - CoreWCF 0.3.0 Release
Matt Connew - Deep C#: Strong Typing
Mike James - Using .NET To Validate JSON with JSON Schema
Khalid Abuhakmeh - What I Like About C# 9
Joseph Guadagno - Introducing Package Source Mapping
Nikolche Kolev - Debugging a .NET App on Linux from Windows Visual Studio with WSL
Patrick Smacchia - HTTP/3 support in .NET 6
Sam Spencer
El timeout que dejé programado semanas atrás ya ha finalizado, por lo que hay que ponerse de nuevo las pilas. Y sin duda, ningún día mejor para hacerlo que el Día Internacional del Programador, celebrado de forma más o menos consensuada el día 13 de septiembre (12 si el año es bisiesto), al ser el día 256º de cada año :)
Así que, para iniciar la temporada con buen pie, ahí va una colección de enlaces, que espero os resulten interesantes :-)
Por si te lo perdiste...
- Syncfusion Blazor UI components library: un primer vistazo
José María Aguilar - Otras formas de obtener dependencias en controladores ASP.NET Core MVC
José María Aguilar
.NET Core / .NET
- Launching Visual Studio Code cleanly from a .NET Application
Rick Strahl - File IO improvements in .NET 6
Adam Sitnik - How not to read a string from an UTF-8 stream
Gérald Barré - IntelliSense for Hosted C# Script
Phil Haack - C# static constructor called multiple times & Going deeper into static constructors hole
Jiří Činčura - Favorite improvements in .NET 6
Mark Downie - A neat Trick to Debug Exceptions in C#
Simon Sutoris - Manually Parsing a Json String Using System.Text.Json
Paul Michaels - C# Namespace Declarations
Steve Fenton - DateOnly And TimeOnly Types In .NET 6
Wade Gausden - How To Desktop in 2022
Sam Basu
Como es habitual por estas fechas, me complace (seriamente) informaros de que a partir de la semana el blog quedará en "modo verano" y dejaré de publicar nuevos contenidos hasta ya entrado septiembre.
Durante este periodo procuraré desconectar totalmente durante un par de semanas, y el resto del tiempo al menos poder bajar un poco el ritmo, a ver si puedo disfrutar un poco de esas cosas que dicen que existen fuera de las pantallas ;)
¡Nos vemos a la vuelta!

Publicado en Variable not found.
Semanas atrás echamos un vistazo por encima a Blazor UI Components, los componentes profesionales para Blazor de Syncfusion, y algún tiempo después revisamos más en detalle uno de los grandes protagonistas en el mundo de los componentes, los de creación de gráficas estadísticas o Charts.
Sin embargo, si hay un tipo de componentes que todos usamos de forma frecuente en nuestras aplicaciones profesionales son, sin duda alguna, los grids o rejillas de datos. Por esa razón, los componentes que de alguna forma simplifican su creación son probablemente los más populares en todas las suites profesionales o gratuitas, sea cual sea la tecnología en la que trabajemos.
En este post centraremos el foco en Blazor DataGrid, la propuesta de Syncfusion para crear interfaces de rejillas de datos de forma sencilla y eficaz para Blazor Server y WebAssembly.
Pero antes de empezar, recordad que, aunque se trata de un producto comercial, dispone de una licencia community bastante permisiva, que permite que en muchos casos podamos utilizar los componentes de forma totalmente gratuita.
Nota: lo que estás leyendo es un post patrocinado por Syncfusion, pero en ningún momento han revisado previamente o condicionado de alguna forma su contenido.
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: blazor, blazorserver, blazorwasm, sponsored, syncfusion
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- ¿Cuánto pesa realmente una aplicación Blazor WebAssembly recién creada?
José María Aguilar - Mi controlador tiene muchos parámetros en el constructor, ¿estoy haciendo algo mal?
José María Aguilar
.NET Core / .NET
- .NET 6 LINQ New Features
Satish Yadav - ICYMI C# 9 New Features: Adding foreach Support To Any Type
Jason Roberts - How Does the StringBuilder Work in .NET? Part 1 & Part 2
Steve Gordon - Supporting Hot Reload in your .NET application
Gérald Barré - C# 10 - Top 5 New Features in the Upcoming C# Version
Nikola M. Zivkovic - Taking Your Brain To Another Dimension - A C# library for physical units
Keith Barrett - C# tip: String.IsNullOrEmpty or String.IsNullOrWhiteSpace?
Davide Bellone - Rediscovering implicit casting
Ken Bonny - Zero to Hero: Containerizing .NET 5.0 WebApis
David Kröll - Thoughts on Async/Await Conversion in a Desktop App
Rick Strahl - How to Use Custom Comparers in NUnit
Sean Killeen