How can I set TextBoxFor to be hidden by default
Not sure what you mean by default, but you could add the style attribute:
<%= Html.TextBoxFor(m => m.SomeProperty, new { style = "display: none;" }) %>
or:
<%= Html.TextBoxFor(m => m.SomeProperty, new { @class = "hidden" }) %>
and in your CSS file:
.hidden {
display: none;
}
Html.TextBoxFor(m => m.SomeProperty, new { @readonly = "readonly", @hidden="true"})