2010-03-02 14 views
8

¿Alguien sabe si es posible aprovechar la potencia de JQuery en el servidor .Net?manipulación del DOM del lado del servidor jQuery

Por ejemplo, tengo algo de HTML como cadena en algún código. ¿Hay alguna forma de ejecutar JQuery en él?

Actualmente estoy haciendo esto ...

asumir esta es la cadena ...

<input id='AddressSettings_txtFirstName' name='txtFirstName' 
value='#firstNameValue#' size='25' type='text' class='val_required'/> 

Mi C# hace esto

strHTML = strHTML.Replace("#firstNameValue#", customerInfo.FirstName); 

Y así es como ato mi datos a mi HTML.

Ahora lo que me gustaría hacer es, en lugar de tener que agregar el # firstNameValue # como marcador de posición y reemplazarlo, me gustaría ejecutar de alguna manera una línea de JQuery en la cadena HTML en mi código C#.

strHTML = strHTML.ExecuteJQuery("$('#AddressSettings_txtFirstName').text('" 
     + customerInfo.FirstName + "')"); 

¿Cuáles son mis opciones aquí?

+0

Me interesa la pregunta, aunque sospecho que la respuesta será 'no'. (dado que js es, hasta donde yo sé, solo del lado del cliente ...) –

+0

Estoy de acuerdo en que alguien podría incluir una versión de Firefox dentro de un objeto .Net. Ni siquiera necesitaría una funcionalidad completa. Solo la capacidad de cargar una página HTML, ejecutar Javascript en esa página y luego regresar la página. Seguramente alguien debe haber hecho esto en alguna parte? – ctrlShiftBryan

+0

No tiene sentido hacerlo. No se puede garantizar que Firefox esté en el otro extremo, por lo que renderizarlo en un modelo DOM para un navegador en particular es algo inútil. Además, estás pensando en esto * completamente * de la manera incorrecta. Tiene acceso al HTML completo que se devuelve, y puede manipular todos los aspectos antes de que llegue al navegador. Los conjuntos de tecnología para hacer esto en el extremo del servidor son radicalmente diferentes. Simplemente necesita insertar el HTML que desee con los datos que tiene. Es así de simple. – casperOne

Respuesta

4

Para todos los efectos, la respuesta es "no" (aunque puede haber alguna manera oscura de manejar esto, no es la forma más óptima).

Parece que busca una manera de manipular el código HTML que se está produciendo en el lado del servidor, que es un deseo muy legítima, es sólo que el enfoque en el lado del servidor utilizando .NET (u otro) las tecnologías son radicalmente diferentes de cómo lo abordarías en el lado del cliente.

Dado que el contenido ya se representa en el cliente, la forma en que lo modificaría es diferente. En el servidor, la página se construye a partir de varias partes que finalmente rinden el HTML al cliente, utilizando datos a los que el cliente no necesariamente tiene acceso (así como recursos y bibliotecas).

Es por esa razón que desea utilizar lo que está disponible en el servidor para lograr lo que está haciendo.

Si está utilizando el modelo de WebForms o el modelo MVC de ASP.NET, existen mecanismos que le permiten enlazar datos sin tener que escribir la etiqueta usted mismo.

Por ejemplo, en el modelo de WebForm, tiene el TextBox class en el que puede establecer el Text property.

En ASP.NET MVC, está el TextBox extension method en el InputExtensions class que le permite pasar el contenido del cuadro de texto y el método representará la etiqueta por usted.

0

El DOM es una entidad específica del navegador. Por lo tanto, no está disponible directamente a medida que buscas. Sin embargo, puede determinar exactamente qué desea manipular y usar .live() o llamar a su código jQuery para agregar elementos de comportamiento a medida que los elementos se agregan. En cuanto a cambio:

<input id='AddressSettings_txtFirstName' name='txtFirstName' 
value='#firstNameValue#' size='25' type='text' class='val_required'/> 

$('#AddressSettings_txtFirstName').change(function(){ 
// do stuff here 
}); 

se disparará cuando cambie, por ejemplo. EDITAR: Otra opción es hacer que el cliente extraiga los datos usando ajax y JSON, pero ese es un pequeño cambio en su método de trabajo actualmente.

0

Bueno, esta es la respuesta para Java. Here y Here Proporcionado por un tipo llamado John Resig. (No estoy seguro de que sepa de qué está hablando cuando se trata de JQuery ... wink wink)

¿Y ahora qué hay de .Net?

-1

Esta tecnología, ItsNat, es muy similar a sus deseos, las malas noticias ... está basada en Java.

1

Usa jQuery con jsdom para Node.js. La forma más fácil de manipular elementos DOM utilizando javascript en el lado del servidor.

Cuestiones relacionadas