I have a simple test application:
Model:
public class Counter
{
public int Count { get; set; }
public Counter()
{
Count = 4;
That's not the issue here. Specifying
<%= Html.TextBox("Count") %>
is equivalent to specifying
<%= Html.TextBox("Count", null) %>
which will pull the matching value (named "Count") from the ModelStateDictionary.
But even so, explicitly passing in
<%= Html.TextBox("Count", Model.Count) %>
results in the same behavior described by alex2k8.