sexta-feira, outubro 28, 2011

MVC ActionButton

Em MVC um dos métodos mais úteis é o ActionLink que nos permite criar um link, dando pelo menos a acção responsável por tratar a request. Estranhamente não existe o equivalente para botões, tipo ActionButton. Andei a pesquisar no meu amigo Google e depois ter lido alguns disparates e algumas resoluções o mais rebuscadas que se possam imaginar com quilos de código css, para algo tão simples como ter um botão, cheguei a uma implementação minha que para mim é algo simples e eficaz.

        public static IHtmlString ActionButton(this HtmlHelper htmlHelper, 
           string text, string actionName, string controllerName, object routeValues)
        {
            UrlHelper urlHelper = ((Controller)htmlHelper.ViewContext.Controller).Url;
            string url = urlHelper.Action(actionName, controllerName, routeValues);

            var input = new TagBuilder("input");
            input.Attributes.Add("type", "button");
            input.Attributes.Add("onclick", 
               string.Format("javascript:location.href=('{0}')", url));
            input.Attributes.Add("value", text);

            return MvcHtmlString.Create(input.ToString());
        }

Sem comentários: