如果Datetime value = null则使用今天的日期

时间:2011-01-04 13:28:44

标签: c# jquery asp.net-mvc-2 datepicker

我试图得到它,如果在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"]);

6 个答案:

答案 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)

在分配从帖子请求传递的日期之前,请验证日期数据以查看它是否是正确的值并将其设置为今天的日期,否则请使用帖子数据,如果正确的话。