あなたがページに非表示の入力フィールドを追加することができます。 altField
およびaltFormat
オプションを使用すると、データを別の形式でページに送信できます。
これを行うには、DateTime形式のカスタムエディタテンプレートを作成します。 DateTime.cshtmlファイルをViews/Shared/EditorTemplatesフォルダに追加します。あなたは、この(テストしていない)のような内容を使用することができます
:次に、あなただけTextBoxForを使用する必要が
@model DateTime?
@using System.Globalization
@{
var name = MvcHtmlString.Create(ViewData.TemplateInfo.GetFullHtmlFieldName(""));
var id = MvcHtmlString.Create(ViewData.TemplateInfo.GetFullHtmlFieldId(""));
var visibleID = id + "_editor";
var value = Model ?? DateTime.Today;
var formattedValue = value.ToString("dd MMM yyyy");
}
<input type="text" id="@(visibleID)" value="@formattedValue" />
<input type="hidden" id="@(id)" name="@(name)" value="@value.ToString("yyyy/MM/dd")" />
<script type='text/javascript'>
$(function() { $('#@(visibleID)').datepicker({ dateFormat: 'd mm y', altField='@id', altFormat='d/m/y' }); });
</script>
を、任意のDateTimeフィールドは、DateTimePickerのが有効になります。
出典
2011-01-13 09:36:48
GvS
上記を行うのが簡単で清潔な方法はありますか? – learning
DateTime.cshtmlは一度だけ追加します。あなたのページではTextBoxForを使うだけです。どのようにきれいにすることができますか? – GvS
さて、私はそれを理解しませんでした。ヘルパーですか? – learning