【发布时间】:2014-11-03 09:27:51
【问题描述】:
首先我解释了我的问题,我们正在使用 BootStrap DatePicker,在提交 Html.BeginForm 后,它会使用选择日期进入控制器并更新我的开发系统(pc)中的数据库,但相同的编码在测试服务器中不起作用,并且客户端系统。在测试服务器上调试后,我发现 datepicker 返回 NULL 到控制器 当我选择超过 12 天的日期时,例如 (13-10-2014) 和少于 12 天的日期,例如 (12-10-2014) 工作正常。
我 changed the culture 为 Invariant 但仍将 null 值返回给控制器
BeginForm 中定义的日期选择器,其他控件返回正确的值,但 DatePicker 除外。
Html.BeginForm("MergeTeacherDetails","Profile", FormMethod.Post, new { id = "FormTeacherDetails" })))
DatePicker 格式更改为 ('dd/mm/yyyy') 这里是查看代码
@Html.LabelFor(m => m.DOB, "DOB", new { @class = "control-label"})
<div class="controls">
@{System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
@Html.TextBoxFor(model => model.DOB, new { placeholder = "DOB",@readonly = "readonly",@class="ReadOnly" })}
</div>
这里是 JavaScript
$('#DOB').datepicker({ startView: 2, autoclose: true, format: "dd/mm/yyyy", endDate: '@DateTime.Now.ToString("dd/MM/yyyy")', changeYear: true, changeMonth: true, weekStart: 1 });
这里是 DAL 代码
public Nullable<System.DateTime> DOB { get; set; }
这里是控制器代码
public ActionResult MergeTeacherDetails(Staffs objStaffs)
{
int res = _staffRepository.InsertOrUpdate(objStaffs);
if(res>0)
{
_mapStaffRepository.SaveMapStaff(objStaffs.StaffId);
}
return RedirectToAction("/MyProfile/1");
}
在控制器参数 objStaffs.DOB 中返回为 NULL
这个
请帮我解决这个问题
提前致谢
【问题讨论】:
-
这个编码中的问题是没有 ViewModel。如果我想创建 ViewModel,在整个项目中处理它非常复杂
-
你能发布控制器代码吗?
-
你能帮我解决这个问题吗?
标签: jquery asp.net-mvc-4 date datepicker