0

我有以下标签来选择日期,第一个是天,第二个是月,第三个是年

<select id="d" class="styledselect-day" tabindex="6">
                    <option value="">dd</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                </select>
<select id="m" class="styledselect-month" tabindex="7" >
                        <option value="">mm</option>
                        <option value="1">Jan</option>
                        <option value="2">Feb</option>
                        <option value="3">Mar</option>
                        <option value="4">Apr</option>
                        <option value="5">May</option>
                        <option value="6">Jun</option>
                        <option value="7">Jul</option>
                        <option value="8">Aug</option>
                        <option value="9">Sep</option>
                        <option value="10">Oct</option>
                        <option value="11">Nov</option>
                        <option value="12">Dec</option>
                    </select>

<select  id="y"  class="styledselect-year" tabindex="8">
<option value="yyyy">yyyy</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option><option value="2008">2008</option><option value="2009">2009</option><option value="2010">2010</option><option value="2011">2011</option><option value="2012">2012</option>
                    </select>

以下是 JS 代码,我使用它向控制器发送信息。我在 Session 中存储这些信息的位置

$.ajax({
                        type: "POST",
                        url: "@Url.Action("AcceptPersonalInfo","Register")",
                        data: { dateDay: $("#d").val(), dateMonth: $("#m").val(), dateYear: $("#y").val() },
                        success: function () {
                            $("#contentSpan").load("/Register/ContactInfo");
                        }
                     });

以下是会话代码

public void AcceptPersonalInfo(string dateDay, string dateMonth, string dateYear) //
        {
            Session["DateDay"] = dateDay;
            Session["DateMonth"] = dateMonth;
            Session["DateYear"] = dateYear;

        }

然后我必须将日期存储在 DateTime 对象中以保存到数据库中。

p.DOB = Convert.ToDateTime(Convert.ToInt32(Session["DateMonth"]) + Convert.ToInt32(Session["DateDay"]) + Convert.ToInt32(Session["DateYear"]));

但它没有将其转换为日期时间。“p.DOB”是日期时间类型。请帮助转换失败的原因。

4

3 回答 3

1

实际上,您正在添加所有整数,这就是您没有得到的原因。试试下面的代码

 string date = Session["DateMonth"].Tostring() + "-" + Session["DateDay"] + "-" + Session["DateYear"];
 p.DOB=Convert.ToDateTime(date);
于 2013-04-09T06:37:16.610 回答
0

您可以使用

p.DOB=new DateTime(Convert.ToInt32(Session["DateYear"]),  
                   Convert.ToInt32(Session["DateMonth"]),
                   Convert.ToInt32(Session["DateDay"]));
于 2013-04-09T06:26:06.490 回答
0

那是因为你正在转换一个int. 您忘记添加分隔符:

p.DOB = Convert.ToDateTime(
    Convert.ToInt32(Session["DateMonth"]) + "/" + 
    Convert.ToInt32(Session["DateDay"]) + "/" + 
    Convert.ToInt32(Session["DateYear"]));
于 2013-04-09T06:38:55.147 回答