I want to have a file-input attribute with the same style as the upload button as seen in the image below. The upload button is using bootstrap. When I apply bootstrap to button A with "TextBoxFor", I get this weird looking button. When I apply bootstrap to button B with "LabelFor", I get the desired style, only without the functionality of the file-input attribute.
My question is, how do I get a file-input field with a certain bootstrap style applied and maintain its functionality. With the same result(style) as if it was applied to a submit-type attribute. I prefer to use one of the html helpers, because I am trying to understand them.

A:
@Html.TextBoxFor(m => m.File, new { type = "file", @class = "btn btn-default btn-file" })
B:
@Html.LabelFor(m => m.File, new { type = "file", @class = "btn btn-default btn-file" })
Upload button:
<input type="submit" class="btn btn-default" value="Upload" />
