非常に興味深い問題に出くわしました。ViewData を使用して DateTime 値をビューに渡し、それをテキスト ボックス内に表示すると、まったく同じ方法で String.Format を使用していても、Html.TextBox ヘルパーを使用すると異なる書式設定結果が得られます。
<%= Html.TextBox("datefilter", String.Format("{0:d}", ViewData["datefilter"]))%>
<input id="test" name="test" type="text" value="<%: String.Format("{0:d}", ViewData["datefilter"]) %>" />
上記のコードは、次の html をレンダリングします。
<input id="datefilter" name="datefilter" type="text" value="2010-06-18" />
<input id="test" name="test" type="text" value="18/06/2010" />
Html ヘルパーを使用する最初の行では、ある方法で日付形式が生成されるのに対し、2 番目の行では非常に異なる出力が生成されることに注意してください。理由はありますか?
注: 私は現在ブラジルにいるので、標準の短い日付形式は dd/MM/yyyy です。