gpt4 book ai didi

jquery - 使用 JQuery Datepicker 选择的日期未反射(reflect)在提交时的 MVC3 模型中

转载 作者:行者123 更新时间:2023-12-03 22:41:51 25 4
gpt4 key购买 nike

我花了很长时间才解决这个问题(我确信我在某个地方犯了一些愚蠢的错误:))有人可以帮忙吗?

提交时,我无法检索模型中使用 JQuery datepicker 选择的日期。它给我的值为“1/1/0001 12:00:00 AM”。我错过了什么吗?

为了隔离我的问题,我使用 Visual Studio 2010 中的模板创建了一个简单的 MVC3 应用程序。详细信息如下:

型号:

namespace DatePickerApp.Models
{
public class DatePickerClass
{
public DateTime BirthDate { get; set; }
}
}

Controller :

namespace DatePickerApp.Controllers
{
public class BirthDateController : Controller
{

//
// GET: /BirthDate/Create

public ActionResult Create()
{
return View();
}

//
// POST: /BirthDate/Create

[HttpPost]
public ActionResult Create(DatePickerApp.Models.DatePickerClass DatePickerClass)
{
try
{
// TODO: Add insert logic here

return View();
}
catch
{
return View();
}
}


}
}

cshtml View :

@model DatePickerApp.Models.DatePickerClass

@{
ViewBag.Title = "Create";
}

<h2>Create</h2>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function () {
$("#date").datepicker({ dateFormat: 'dd/mm/yy' });
});
</script>

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>DatePickerClass</legend>

<div class="editor-label">
@Html.LabelFor(model => model.BirthDate)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.BirthDate, new { id = "date" })
@Html.ValidationMessageFor(model => model.BirthDate)
</div>

<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}

<div>
@Html.ActionLink("Back to List", "Index")
</div>

最佳答案

发生这种情况是因为 jquery 中的日期格式不是 C#/VB 中 DateTime 数据的预期格式日期。将 jq 日期格式更改为与 '1/1/0001 12:00:00 AM' 相同

正确的方法可能是:$("#date").datepicker({ dateFormat: 'dd/mm/yy hh:MM:ss' });

附注此“1/1/0001 12:00:00 AM”是 C# 中的默认日期时间值

检查文档:http://api.jqueryui.com/1.8/datepicker/#option-dateFormat

此链接还可以帮助您实现上午/下午部分:http://derekallard.com/blog/post/adding-time-to-jquery-ui-datepicker/

date_obj = new Date();
date_obj_hours = date_obj.getHours();
date_obj_mins = date_obj.getMinutes();

if (date_obj_mins < 10) { date_obj_mins = "0" + date_obj_mins; }

if (date_obj_hours > 11) {
date_obj_hours = date_obj_hours - 12;
date_obj_am_pm = " PM";
} else {
date_obj_am_pm = " AM";
}

date_obj_time = "'"+date_obj_hours+":"+date_obj_mins+date_obj_am_pm+"'";

$("#entry_date").datepicker({dateFormat: $.datepicker.W3C + date_obj_time});

使用此 Controller :

[HttpPost]
public ActionResult Index(DateTime? date)
{
//do something with date
}

文档中的 JavaScript 已准备就绪:

$("[name=date]").datepicker({ dateFormat: "m/dd/yy" });

现在日期将相应填写。

关于jquery - 使用 JQuery Datepicker 选择的日期未反射(reflect)在提交时的 MVC3 模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com