1

我有以下 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 表单,在该表单中找不到页面上已经呈现的某些内容。

什么可能导致此问题?

4

0 回答 0