Jquery Intellisense no Visual Studio (e como fazer funcionar com MVC)

by Cássio R Eskelsen 22. novembro 2008 11:29

Nessas últimas semanas vários blogs (inclusive ScottGu)comentaram sobre o intellisense do JQuery no Visual Studio 2008.  Para quem está usando esse framework com aplicações .Net, o uso do intellisense ajuda muito e vale o pequeno esforço para instalar o hotfix do VS 2008.

No entanto, para quem está usando o ASP.NET MVC alguns problemas persistem.
Normalmente fazemos referência ao JQuery na MasterPage e por padrão o link fica dessa forma:

<script src="../../Scripts/jquery.js" type="text/javascript"></script>


A Masterpage de aplicações MVC esta em (root)/Views/Shared. Se temos uma view que está respondendo no mesmo nível (por exemplo, (root)Views/Home/Index.aspx), a chamada acima funciona normalmente. No entanto, se temos views em outros niveis ou se nosso site está em subdiretório (como por exemplo, este blog que está em http://www.bizness.com.br/weblog) começamos a ter problemas.
Para resolver isso, podemos usar um método do framework MVC para renderizar o caminho relativo em runtime:

<script src="<%=Url.Content("~/Scripts/jquery.js")%>" type="text/javascript"></script>


Agora criamos outro problema: o intellisense não reconhece essa forma de chamar o script. 
Para contornar, podemos usar uma chamada falsa ao javscript:

<script src="<%=Url.Content("~/Scripts/jquery.js")%>" type="text/javascript"></script>

    <%if (false)
      { %>
            <script src="../../Scripts/jquery.js" type="text/javascript"></script>
    <%} %>


Tabajara code detected!! Sim, um tanto freak, mas resolve. Como estamos isolando a segunda chamada por um if que sempre retorna falso ela nunca será renderizada na página final, mas em modo design será reconhecida pelo intellisense.

Adaptei a dica que Jeff King deu para que usercontrols .ascx tenham intellisense do Jquery quando a chamada para ele está na masterpage. (os aspx tratam as chamadas que estão na masterpage, mas os ascx não, pois eles não estão ligados a uma página ou masterpage específicos.

Tags: , , ,

Web

Comentários

Comentar




  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading