sábado, 29 de janeiro de 2011

ASP.net MVC3: Usando HTML helper para incluir javascript files em Views

Em ASP.net MVC3 para quem não ainda conhece existe o HTML helper que um objeto para ajudar a construir objetos HTML com mais facilidade dentro dos Views do ASP.net MVC3.  Por exemplo:

@Html.TextBox("Nome")
Tenho certeza que todos já viram isso.


 Mas também você pode criar seus próprios Helper Methods anexados ao objeto HTML helper para incluir outros files ou arquivos.

 <script src='http://localhost:1633/Scripts/jquery-1.4.4.min.js' type='text/javascript'></script>
 <script src='http://localhost:1633/Scripts/jquery-ui-1.8.7.custom.min.js' type='text/javascript'></script>
 <script src='http://localhost:1633/Scripts/main.js' type='text/javascript'></script>


Vamos ver como se faz usando o HTML helper.


  1. Primeiro você precisa fazer é criar uma classe stática.
  2. Extraimos duas partes dos nosso link o urlSchema e urlAuth  que seria o Schema (http...) e o Authority (www.???.com....)
    urlSchema = HttpContext.Current.Request.Url.Scheme;
    urlAuth = HttpContext.Current.Request.Url.Authority;
  3. Criamos um method que tem como parameter o THML herlper com key work "This" que anexa o method ao HTML objeto para que você possa usar em qualquer view.
    public static string AddJQueryMinLink(this HtmlHelper helper)
  4. Por último a parte que retorna um string que contem o nosso HTML elemento.
     return string.Format("<script src='{0}://{1}/Scripts/jquery-1.4.4.min.js' type='text/javascript'></script>", urlSchema, urlAuth);

Código para adicionar ao View:

 @Html.Raw(Html.AddJQueryMinLink())
 @Html.Raw(Html.AddJQueryUICustomMinLink())
 @Html.Raw(Html.AddMainJS())


Abaixo você encontra o código completo.

Espero que ajude alguem.
Deylo

using System;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;


namespace SalonMVC3.Models
{
    public static class HTMLHelpers
    {
        private static string urlSchema;
        private static string urlAuth;
 
        static HTMLHelpers()
        {
            urlSchema = HttpContext.Current.Request.Url.Scheme;
            urlAuth = HttpContext.Current.Request.Url.Authority;
        }
 
 
        public static string AddJQueryMinLink(this HtmlHelper helper)
        {
            return string.Format("<script src='{0}://{1}/Scripts/jquery-1.4.4.min.js' type='text/javascript'></script>", urlSchema, urlAuth);
        }
 
        public static string AddJQueryUICustomMinLink(this HtmlHelper helper)
        {
            return string.Format("<script src='{0}://{1}/Scripts/jquery-ui-1.8.7.custom.min.js' type='text/javascript'></script>", urlSchema, urlAuth);
        }
 
        public static string AddMainJS(this HtmlHelper helper)
        {
            return string.Format("<script src='{0}://{1}/Scripts/main.js' type='text/javascript'></script>", urlSchema, urlAuth);
        }
 
    }
}

Nenhum comentário:

Postar um comentário