Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

112
Vistas
VS2010 IntelliSense dentro de plantillas de secuencias de comandos text/x-jquery-tmpl

He estado usando plantillas de jQuery que me encanta usar. El único inconveniente desde el punto de vista del IDE es la falta de HTML IntelliSense dentro de la etiqueta del script. ¿Hay alguna manera de engañar a VS2010 para que el marcado dentro de las etiquetas de script de plantilla obtenga IntelliSense y resaltado de sintaxis?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Creé un método auxiliar para ASP.NET MVC 3 que funciona así, inspirado en Html.BeginForm:

dentro de la vista:

 @using (Html.BeginHtmlTemplate("templateId")) { <div>enter template here</div> }

Cualquier cosa dentro del alcance de @using se resaltará sintaxis.

El código para el ayudante:

 public static class HtmlHelperExtensions { public static ScriptTag BeginHtmlTemplate(this HtmlHelper helper,string id) { return new ScriptTag(helper,"text/html", id); } } public class ScriptTag : IDisposable { private readonly TextWriter writer; private readonly TagBuilder builder; public ScriptTag(HtmlHelper helper, string type, string id) { this.writer = helper.ViewContext.Writer; this.builder = new TagBuilder("script"); this.builder.MergeAttribute("type", type); this.builder.MergeAttribute("id", id); writer.WriteLine(this.builder.ToString(TagRenderMode.StartTag)); } public void Dispose() { writer.WriteLine(this.builder.ToString(TagRenderMode.EndTag)); } }
over 4 years ago · Santiago Trujillo Denunciar

0

Resolví este problema creando un control de servidor personalizado simple (para la aplicación ASP.NET 4 WebForms):

 [ToolboxData("<{0}:JqueryTemplate runat=server></{0}:JqueryTemplate>")] [PersistChildren(true)] [ParseChildren(false)] public class JqueryTemplate : Control { private bool _useDefaultClientIdMode = true; [DefaultValue(ClientIDMode.Static)] [Category("Behavior")] [Themeable(false)] public override ClientIDMode ClientIDMode { get { return (_useDefaultClientIdMode) ? ClientIDMode.Static : base.ClientIDMode; } set { base.ClientIDMode = value; _useDefaultClientIdMode = false; } } protected override void Render(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Type, "text/x-jquery-tmpl"); writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID); writer.RenderBeginTag(HtmlTextWriterTag.Script); base.Render(writer); writer.RenderEndTag(); } }

y coloque cada plantilla de jquery dentro (en lugar de la etiqueta <script> ):

 <some:JqueryTemplate runat="server" ID="myTemplateId"> ... your template code goes here ... </some:JqueryTemplate>

lo representará en HTML como:

 <script type="text/x-jquery-tmpl" id="myTemplateId"> ... your template code goes here ... </script>
over 4 years ago · Santiago Trujillo Denunciar

0

No creo que pueda, a menos que engañe al editor para que no sepa que está escribiendo una etiqueta de secuencia de comandos, como escribirla en código (asistente HTML más o menos). Lo solucionaría cambiando el nombre de la etiqueta (o comentándolo) temporalmente y recuperándolo una vez que haya terminado. Seguro que es una solución tonta.

Otra cosa que puede hacer es en lugar de usar una etiqueta de secuencia de script , use cualquier otra etiqueta como div configurando su style para display:none . Debería funcionar exactamente de la misma manera (ejemplo en medio de este artículo ).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda