1) TagBuilder is for building html tags. "styledbuttonprimary" is not a tag in html. Your helper method name has nothing to do with it.
2) Your helper method has 2 parameters, but you try to call it with 5. You build the method, you dont inherit it! So build a proper formal parameter list in the prototype, or dont add what you have allready in the body of the method.
3) You know, that you have added the "text" parameter three times? What for?
4) You can compose from the ID and the css class one single inline class:
@Html.StyledbuttonPrimary("Back", new { ID = Model.Finance.ID, @class = "styledbutton" })
and
public static MvcHtmlString StyledbuttonPrimary(this HtmlHelper Helper, string text, IDictionary<string, object> htmlAttributes)
{
var builder = new TagBuilder("button");
builder.InnerHtml = text;
builder.MergeAttributes(htmlAttributes);
return MvcHtmlString.Create(builder.ToString());
}
5) Are you sure with IDictionary<string,object>? <string,string> would be better, I dont know if automatic casting will work in properly...