Problema
En MS SQL Report Server, al exportar un PDF que incluye matrices se producen páginas en blanco.
Solución
Establece en Cierto la propiedad ConsumeContainerWhitespace
del informe mismo.
El día a día de mis problemas y sus soluciones
En MS SQL Report Server, al exportar un PDF que incluye matrices se producen páginas en blanco.
Establece en Cierto la propiedad ConsumeContainerWhitespace
del informe mismo.
Usas el componente Dialog de MudBlazor para abrir un formulario simple, el problema es que cada vez que teclean algo el formulario parpadea.
Por algún motivo al validar cada tecla se lanza un renderizado de página y el dialogo realiza la transición de apertura.
Debes detener el renderizado con una variable y sobrecargando el evento
private bool _renderizar = true;
protected override bool ShouldRender()
{
return _renderizar && base.ShouldRender();
}
El valor de _renderizar debe cambiar a falso después de haber renderizado el dialogo, para lo que usamos el evento IsVisibleChanged del componente muddialog
<MudDialog
IsVisible="@visible"
Options="opcionesDlg"
IsVisibleChanged="CambioVisibleDialogo">...
private void CambioVisibleDialogo(bool visible)
{
if (visible)
_renderizar = false;
}
Deberemos reactivar el renderizado antes de ocultar el dialogo, por ejemplo:
<MudIconButton Icon="@Icons.Material.Outlined.Cancel
OnClick="@(()=>{_renderizar=true; visible=false;})"/>
La operación de conversión JSON a Objeto
_datos = await q.Content.ReadFromJsonAsync<EdiProyecto.Edicion>()
Provoca el error
"Exception: '<' is an invalid start of a value"
Por experiencia supones que está recibiendo Html en lugar de JSON, revisas la petición
var q = await Http.GetAsync($"API/Proyectos/{Id}");
Escribes en el navegador loalhost:23234API/proyectos/ 22 y recibes JSON
¿Qué pasa?
El nombre de controlador en la URL de WEBAPI debe estar en minúsculas.
var q = await Http.GetAsync($"API/proyectos/{Id}");
En Blazor WASM se produce un error
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] Unhandled exception rendering component: Each parameter in the deserialization constructor on type 'CRM.Shared.Models.Notas.FilaTabla' must bind to an object property or field on deserialization. Each parameter name must match with a property or field on the object. The match can be case-insensitive.
Al convertir la respuesta de JSON a un objeto C# mediante q.Content.ReadFromJsonAsync .
Lo que te sorprende es que la clase esta definida en el proyecto Shared usado tanto por el proyecto Server del controlador Web API que envia la respuesta como por la parte del cliente donde se realiza la llamada a Content.ReadFromJsonAsync. Entonces, ¿por qué difieren los nombres?
La clase no tiene un constructor vacio.
Es fácil olvidarse del constructor vacío cuando creas un construtor con parametro un entidad de EF.
Acabas de instalar VS2022 y .NET6 SDK, creas un proyecto que accede a una base de datos Para generar los modelos y mapeos usas ingeniería inversa, por ejemplo Entity Framework Generator
Creas un controlador API Get para obtener una lista de fabricas desde Blazor. ¡Oh sorpresa! La cosa no funciona.
El mensaje de error es: "Data is Null. This method or property cannot be called on Null values"
Debes deshabilitar Admite valores NULL en Compilación/general del proyecto donde tienes los modelos y dbcontext para acceder a la base de datos.
En C#8 cuando habilitas la característica NRT debes usar string? para una propiedad de cadena que admita nulos y string para una que no los admita.
EF6 CORE implementa NRT mediante anotaciones, pero los generadores databasefirst no asocian el tipo string? a las propiedades mapeadas a columnas varchar nullables.