Home > DeveloperSection > Forums > What is ActionButton in mvc?
Royce Roy
Royce Roy

Total Post:134

Points:938
Posted on    October-08-2014 11:46 PM

 ASP.NET MVC ASP.Net  ASP.NET MVC 
Ratings:


 1 Reply(s)
 725  View(s)
Rate this:
Has anyone written one? I want it to behave like a link but look like a button. A form with a single button wont do it has I don't want any POST.


Kamlakar Singh
Kamlakar Singh

Total Post:194

Points:1396
Posted on    October-08-2014 11:51 PM

Submit button:


<form method="get" action="/myController/myAction/">

    <input type="submit" value="button text goes here" />

</form>

In response to cdmckay's answer, here's an alternative code that uses the TagBuilder class instead of a regular StringBuilder to build the form, mostly for clarity.

using System.Web.Mvc;

using System.Web.Mvc.Html;

using System.Web.Routing;

 

namespace MvcApplication1

{

    public static class HtmlExtensions

    {

        public static string ActionButton(this HtmlHelper helper, string value,

                              string action, string controller, object routeValues)

        {

            var a = (new UrlHelper(helper.ViewContext.RequestContext))

                        .Action(action, controller, routeValues);

 

            var form = new TagBuilder("form");

            form.Attributes.Add("method", "get");

            form.Attributes.Add("action", a);

 

            var input = new TagBuilder("input");

            input.Attributes.Add("type", "submit");

            input.Attributes.Add("value", value);

 

            form.InnerHtml = input.ToString(TagRenderMode.SelfClosing);

 

            return form.ToString(TagRenderMode.Normal);

        }

    }

}

 I am aware that there might be quite a lot of overhead in this code, but I am expecting that you won't need to run it a lot of times on each page. In case you do, there is probably a bunch of optimizations that you could do.


Don't want to miss updates? Please click the below button!

Follow MindStick