获取2个日期和显示日期数字和日期之间的区别c#razor mvc

时间:2016-02-18 11:38:09

标签: c# asp.net asp.net-mvc for-loop razor

我需要能够获得输入的“发件人”和“收件人”之间的日期列表 同时显示每个的日期编号。我需要使用for循环,以便我可以填充单选按钮。这是我目前的代码 - 但它循环了日期和日期数字,这不是我想要的: 日期输入从(01.02.2016)到(02/02/2016)输出:

  • •Day:1 Date:01/02/2016
  • •日:1日期:02/02/2016
  • •Day:2 Date:01/02/2016
  • •Day:2 Date:02/02/2016

但我想要的是:

•Day:1 Date:01/02/2016

•日:2日期:02/02/2016

这是我的代码:

List<DateTime> dates = new List<DateTime>();
for (DateTime date = Model.DataModel.DateFrom.Value; date <= Model.DataModel.DateTo; date = date.AddDays(1))
{
    dates.Add(date);
}

//Then enter this number of days into the loop to show radiobuttons
for (int i = 1; i <= dates.Count; i++)
{
    foreach (var item in dates)
    {
        <ul>
           <li>Day:  @i.ToString() Date: @item.ToShortDateString()</li>
        </ul>
    }
}

1 个答案:

答案 0 :(得分:1)

您有两种选择,但您现在的代码几乎就在那里。只要想想它的当前行为以及它正在做什么,你就会发现你的嵌套循环导致了这个问题。

 //Then enter this number of days into the loop to show radiobuttons
 <ul>
     @for (int i = 1; i <= dates.Count; i++)
     {

        <li>Day:  @i.ToString() Date: @dates[i-1].ToShortDateString()</li>

     }
 </ul>

或者你可以这样做:

 //Then enter this number of days into the loop to show radiobuttons
 if(dates.Any())
 {
     var count = 1;
     <ul>
         @foreach (var date in Dates)
         {

            <li>Day:  @count Date: @date.ToShortDateString()</li>
            count++;
         }
    </ul>
 }
 else
 {<p>No dates found</p>}