我有以下 HTML 表单:
@using(Html.BeginForm("EditCourse", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="twelve columns" style="margin:10px 0px 30px 30px">
<div class="row">
<div class="six columns" style="margin-left:-5px; width:320px;">
@Html.LabelFor(c => c.Course.Name)
@Html.EditorFor(c => c.Course.Name)
@Html.HiddenFor(c => c.Course.CourseID)
</div>
<div class ="six columns" style="width:320px;">
@Html.LabelFor(c => c.Course.Author)
@Html.EditorFor(c => c.Course.Author)
</div>
<div class="row">
<div class="twelve columns" style="width:640px;">
@Html.LabelFor(c => c.Course.Description)
@Html.EditorFor(c => c.Course.Description)
</div>
</div>
<div class="row">
<div class="six columns" style="width:320px;">
@Html.LabelFor(c => c.Course.ParticipationPoints)
@Html.EditorFor(c => c.Course.ParticipationPoints)
</div>
<div class="six columns" style="width:320px; float:left;">
@Html.LabelFor(c => c.Course.ExpiryDate)
<input type="text" id="expires" name="expires" /><br />
@Html.EditorFor(c => c.Course.ExpiryDate)
</div>
</div>
<div class="row">
<div class="twelve columns" style="width:640px;">
@Html.LabelFor(c => c.Course.CategoryGroupID, "Category")
@Html.DropDownListFor(c => c.Course.CategoryGroupID, new SelectList(Model.CategoryGroups, "CategoryGroupID", "CategoryGroupName", Model.Course.CategoryGroupID))
</div>
</div>
<div class="row">
<div class="six columns">
@Html.HiddenFor(c => c.Course.UploadDate)
</div>
</div>
<div class="twelve columns">
<input id="FileSubmit" type="submit" class="medium button bottom20 top20" value="Save Changes" style="margin-left:235px;"/>
</div>
</div>
</div>
}
在我的过期日期编辑中,它显示为日期时间的完整字符串格式,但从 UI 我希望用户在 UI 中只显示短日期字符串,所以我编写了以下 javascript:
$(document).ready(function () {
$('#expires').datepicker({ dateFormat: 'dd/mm/yy' });
$('#expires').val('@Model.Course.ExpiryDate.ToString("dd/MM/yyy")');
$("#expires").change(function () {
var currentDate = $(this).val();
var array = currentDate.split("/", 3);
var day = array[0];
var month = array[1];
var year = array[2];
$('#Course_ExpiryDate').val(month + "/" + day + "/" + year + " 23:59:59");
});
});
当页面加载时,日期正确显示在我添加的输入框中以英国格式显示,并且我已经显示了过期日期的编辑器,以确保在编辑器中以美国格式更新对框的更改。
如果我尝试在不更改日期的情况下编辑我的模型,它会按预期工作并直接跳转到控制器以处理表单。但是,如果我更改日期,它不会并跳转到 HTML 表单,在该表单中找不到页面上已经呈现的某些内容。
什么可能导致此问题?