¿Será posible manipular DOM desde el código C # directamente sin invocar funciones de JavaScript?
Pensé en conceptos básicos como ese
var elem = document.getElementById("123");
elem.AddOrUpdateStyle("background-color", "red");
elem.AddOrUpdateStyle("height", "150px");
elem.Remove("height");
var boxes = document.getElementsByClassName("box");
foreach (var box in boxes)
{
if (box.Classes.Contains("hidden"))
{
box.AddOrUpdateStyle("display", "none");
continue;
}
box.Value = "";
box.SetAttribute("placeholder", "Type here...");
}
¿Es incluso alcanzable?
La manipulación DOM actualmente no es compatible con el ensamblaje web (https://github.com/WebAssembly/proposals/issues/16, https://github.com/WebAssembly/design/blob/master/Web.md), por lo que ganó Pronto será apoyado por mono wasm. Puede hacerlo solo utilizando el estado actual de Blazor: componente personalizado e interoperabilidad JS.
Creo que este tema debería reabrirse. Los componentes de Razor deberían tener esta capacidad, incluso si se hace con interoperabilidad JS bajo el capó. ElementRef debería ampliarse para admitir la mayoría de las funciones básicas de JS.
El acceso directo al DOM será la razón por la que probaré Blazor.
Esto es obligatorio para el avance de Blazor.
Comentario más útil
Creo que este tema debería reabrirse. Los componentes de Razor deberían tener esta capacidad, incluso si se hace con interoperabilidad JS bajo el capó. ElementRef debería ampliarse para admitir la mayoría de las funciones básicas de JS.