DateTime オブジェクトを受け取り、文字列を返すビュー ヘルパーを作成しようとしました。DateTime オブジェクトが新しい DateTime(0) と等しい場合、関数は空の文字列を返します。それ以外の場合は、フォーマットされた DateTime 文字列を返します。これはこれまでのところ機能します。
public static string DateTimeOrEmpty(this HtmlHelper htmlHelper, DateTime dateTime)
{
return dateTime.ToString().Equals(new DateTime(0).ToString())
? String.Empty
: dateTime.ToString("{0:g}");
}
問題は、フォーマット ("{0:g}") をパラメーターとして渡したいということです。
public static string DateTimeOrEmpty(this HtmlHelper htmlHelper, DateTime dateTime, string format)
{
return dateTime.ToString().Equals(new DateTime(0).ToString())
? String.Empty
: dateTime.ToString(format);
}
しかし、それは正しく動作しません。私の視点からヘルパーを呼び出すと
<%: Html.DateTimeOrEmpty(Model.StopDate, "{0:g}") %>
「format」のパラメーターとして「{0:g}」を使用する関数を実行すると、「{O:n. Chr.}」のような結果が得られますが、これは期待したものではありません