jQueryを使用して、入力ボックスの時刻を正しい形式で変更するスライダーを作成しました。ビューファイルのCreate.aspxで、次のjquery関数を本文の先頭のどこかに配置します。
<script>
$(function () {
$("#slider").slider({
value: 9,
min: 0,
max: 1440,
step: 15,
slide: function (event, ui) {
var hours = Math.floor(ui.value / 60);
var minutes = ui.value - (hours * 60);
var ampm = "AM";
if (hours == 12) { ampm = "PM"; }
else if (hours == 0) { hours = 12; ampm = "AM"; }
else if (hours > 12) { hours = hours - 12; ampm = "PM"; }
if (hours < 10) hours = '0' + hours;
if (minutes < 10) minutes = '0' + minutes;
$("#work_StartTime").val(hours + ':' + minutes + ' ' + ampm);
}
});
});
</script>
次に、同じページの本文で、時間入力用のテキストボックスの近くにdivを配置します。そのdivにスライダーが表示されます
<div class="editor-field">
<%: Html.EditorFor(model => model.work.StartTime)%>
<div id="slider"></div>
<%: Html.ValidationMessageFor(model => model.work.StartTime)%>
</div>
これにより、スライダーが表示されます。上記のjavascriptコードで、step:15を変更し、増分を15分にします。これは明らかにクライアント側の検証です。もちろん、サーバー側の検証も実装する必要があります。