Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

147
Visualizações
Blazor WASM pasa obj a JS vacío a menos que se serialice como json. Otros objetos funcionan

Esencialmente, solo puedo pasar primitivos y tipos anónimos como argumento en la interoperabilidad de Blazor con JS.

Mi primera publicación sobre el desbordamiento de pila porque simplemente no puedo entender esto:

Este ejemplo funciona:

C#:

 async void doThing() { await JSRuntime.InvokeAsync<object>("test", new { Name = "John", Age = 35 }); }

JS:

 var test = funciton(stuff){ console.log(stuff); return stuff; } Output in JS is object with name and age as expected.

Ahora aquí está mi clase real:

 public class CarsAndBikes { public car[] cars; public bike[] bikes; } async void doThing() { await JSRuntime.InvokeAsync<object>("test", carsAdnBikes); }

No es tan complejo, pero lo que puedo ver en JS es un objeto vacío, a menos que lo serialice como JSON y lo deserialice. coche y moto son clases. C#

 JsonConvert.SerializeObject(CarsAndBikes);

JS:

 JSON.parse(stuff)

Entonces funciona bien. No tengo idea de por qué no puedo pasar mi clase a JS, ¿alguien sabe si estoy haciendo algo mal o es un error?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Aquí hay una demostración de trabajo simple usando su código. Funciona, por lo que hay algo que no nos muestra que rompe su código. ¿Cómo es Car and Bike ?

 @page "/" @inject IJSRuntime Js <PageTitle>Index</PageTitle> <button class="btn btn-primary" @onclick=doThing>Object</button> <button class="btn btn-secondary" @onclick=doBookThing>Book as Object</button> <button class="btn btn-dark" @onclick=doBook>Book</button> <button class="btn btn-info" @onclick=doBooks>Books</button> @code { async void doThing() { await Js.InvokeAsync<object>("test", new { ID = 1, Title = "Fred" }); } async void doBookThing() { await Js.InvokeAsync<object>("test", new Book { ID = 1, Title = "Portugal" }); } async void doBook() { await Js.InvokeAsync<Book>("test", new Book { ID = 1, Title = "Shaun" }); } async void doBooks() { await Js.InvokeAsync<object>("test", new Catalog()); } public class Book { public int ID { get; set; } public string Title { get; set; } = string.Empty; } public class Catalog { public List<Book> Books { get; set; } = new List<Book> { new Book { ID=10, Title="Jon" }, new Book { ID=11, Title="Spain" } }; } }

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda