我试图得到它,如果在datepicker上没有选择日期,而不是提交null,它将提交今天的日期。
从下面的代码中我可以看到我已经尝试了很多方法但是没有成功,没有viewmodel并且它都在一个页面上,如果我在datepicker上选择一个日期它没有问题
查看页面日期代码
<div class="rowElem">
<label for="Date">Date</label>
<div id="cal" style="float:left;"></div>
<%= Html.HiddenFor(h => Model.Date)%>
</div>
Jquery datepicker代码
$('#cal').datepicker({
dateFormat: 'dd/mm/yy',
[setDefaults: ({ defaultDate: '-0d' }),
defaultDate: '-0d', tried both this and above line and neither worked]
onSelect: function (dt, inst) {
$('#Date').val(dt);
}
});
Controller为日期
创建邮政编码oq.Date = DateTime.Parse(fc["Date"]);
答案 0 :(得分:3)
您可以使用Parse
代替TryParse
:
DateTime tmp = DateTime.MinValue;
oq.Date = DateTime.TryParse(fc["Date"], out tmp) ? tmp : DateTime.Today;
答案 1 :(得分:2)
在C#中试试这个:
DateTime date;
if (!DateTime.TryParse(fc["Date"], out date))
date = DateTime.Today;
oq.Date = date;
编辑:根据Myzifer的评论。
答案 2 :(得分:2)
if (oq.Date == null)
{ oq.Date = DateTime.Now; }
else
{ oq.Date = DateTime.Parse(fc["Date"]); }
这很有效,能够解决Tomas Jansson和Jackson Popes的答案。
答案 3 :(得分:1)
你能不能在服务器端解决它?如果提交null,请使用今天的日期:
if(fs["Date"] == null)
oq.Date = DateTime.Now;
else
oq.Date = DateTime.Parse(fc["Date"]);
此外,您应该在变量上拥有更多描述性名称。也许别人将来会读你的代码。
答案 4 :(得分:0)
fc来自哪里。如果它是一个数据库问题,你可以使用isnull(fieldname,getdate())或类似的函数让它在今天返回如果field为null。
Mysql使用ifnull而不是isnull。
答案 5 :(得分:0)
在分配从帖子请求传递的日期之前,请验证日期数据以查看它是否是正确的值并将其设置为今天的日期,否则请使用帖子数据,如果正确的话。