发布到控制器时,jQuery datepicker的出生日期为空
我不明白为什么日期总是空的。我的部分看法是:发布到控制器时,jQuery datepicker的出生日期为空,jquery,ajax,datepicker,Jquery,Ajax,Datepicker,我不明白为什么日期总是空的。我的部分看法是: <td> @Html.DisplayNameFor(x => x.Patient.DateOfBirth) </td> <td> @Html.TextBoxFor(x => x.Patient.DateOfBirth, new { @id = "txtPatientDa
<td>
@Html.DisplayNameFor(x => x.Patient.DateOfBirth)
</td>
<td>
@Html.TextBoxFor(x => x.Patient.DateOfBirth, new { @id = "txtPatientDateOfBirth", @class = "normalText" })
</td>
然后我尝试用AJAX发布它:
$.ajax({
type: 'POST',
data: $("#formPreArrival").serializeArray(),
url: '@Url.Action("AddPreArrival")',
success: function (data) {
if (data.Errors === 'ERRORS') {
ErrorDialog("#MessageDialog", "#lblError", "There was an error detected in the submission of data. Please try again later. ", "Error");
return false;
}
else {
ErrorDialog("#MessageDialog", "#lblError", "Patient Pre-Arrival data has been successfully entered. ", "Record Added");
$("#formPreArrival")[0].reset();
$('body, html').animate({ scrollTop: $('form').offset().top }, 'slow');
return false;
}
}
但模型字段“出生日期”始终显示为空:
[HttpPost]
public ActionResult AddPreArrival(PreArrivalModel model)
{
string retval = "";
if (!ModelState.IsValid)
{
var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => new { x.Key, x.Value.Errors }).ToArray();
model.Errors = "ERRORS";
retval = "ERRORS";
return Json(retval);
}
retval = Repository.AddPreArrival(model);
return Json(JsonConvert.SerializeObject(retval));
}
到达前模型的部分:
[Display(Name = "Transfer Category:")]
public string CallTransferCategory { get; set; }
public PatientModel Patient { get; set; }
public TransferringFacilityModel TransferringFacility { get; set; }
public UserModel User { get; set; }
[Display(Name ="DEERS Verification: Is patient ELIGIBLE for care?")]
public bool DeersVerify { get; set; }
[Display(Name ="Comments:")]
public string Notes { get; set; }
public string Errors { get; set; }
[Display(Name = "DOB:")]
public DateTime? DateOfBirth { get; set; }
[Display(Name = "DOB:")]
public string DateOfBirthForDisplay
{
get
{
if (DateOfBirth.HasValue)
{
return DateOfBirth.Value.ToShortDateString();
}
return "";
}
}
患者模型的部分:
[Display(Name = "Age:")]
public int Age
{
get
{
if (DateOfBirth.HasValue)
{
return DateTime.Today.Year - DateOfBirth.Value.Year;
}
return 0;
}
}
[Display(Name = "DOB:")]
public DateTime? DateOfBirth { get; set; }
[Display(Name = "DOB:")]
public string DateOfBirthForDisplay
{
get
{
if (DateOfBirth.HasValue)
{
return DateOfBirth.Value.ToShortDateString();
}
return "";
}
}
尝试
$(“#formPreArrival”).serialize()
而不是$(“#formPreArrival”).serializeArray()
@ADyson-已经尝试过了,同样的结果。请给我们看看PreArrivalModel是什么样子。还执行console.log($(“#formPreArrival”).serialize()代码>可能在以下方面很有用:well@ADyson-患者模型是到达前模型的一部分。奇怪的是,如果我在到达前模型中添加一个DOB字段,并将该字段用于患者的DOB,它将进入动作ok。然后我用这个值填充病人的dob。非常奇怪,为什么它只忽略子模型的日期字段。我不知道我是否理解。什么是患者模型?它与患者模型有什么关系?您的行为所接受的模型是婚前模型。你能发布这两个模型吗?试试$(“#formPreArrival”).serialize()
而不是$(“#formPreArrival”).serializeArray()
@ADyson-已经尝试过了,同样的结果。你能告诉我们PreArrivalModel是什么样子吗。还执行console.log($(“#formPreArrival”).serialize()代码>可能在以下方面很有用:well@ADyson-患者模型是到达前模型的一部分。奇怪的是,如果我在到达前模型中添加一个DOB字段,并将该字段用于患者的DOB,它将进入动作ok。然后我用这个值填充病人的dob。非常奇怪,为什么它只忽略子模型的日期字段。我不知道我是否理解。什么是患者模型?它与患者模型有什么关系?您的行为所接受的模型是婚前模型。你能把这两种型号都贴出来吗?
[Display(Name = "Age:")]
public int Age
{
get
{
if (DateOfBirth.HasValue)
{
return DateTime.Today.Year - DateOfBirth.Value.Year;
}
return 0;
}
}
[Display(Name = "DOB:")]
public DateTime? DateOfBirth { get; set; }
[Display(Name = "DOB:")]
public string DateOfBirthForDisplay
{
get
{
if (DateOfBirth.HasValue)
{
return DateOfBirth.Value.ToShortDateString();
}
return "";
}
}