【问题标题】:Get difference between 2 dates and show day numbers and dates c# razor mvc获取2个日期之间的差异并显示天数和日期c#razor mvc
【发布时间】:2016-02-18 11:38:09
【问题描述】:

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

  • •日:1 日期:01/02/2016
  • •天:1 日期:02/02/2016
  • •天:2 日期:01/02/2016
  • •天:2 日期:02/02/2016

但我想要的是:

•日:1 日期:2016 年 1 月 2 日

•天: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>
    }
}

【问题讨论】:

  • 你只需要一个循环 - for (int i = 1; i &lt;= dates.Count; i++) { &lt;li&gt;Day: @i.ToString() Date: @dates[i].ToShortDateString()&lt;/li&gt; }。但是该代码不属于视图。创建一个视图模型并将其填充到控制器中。
  • 正如@StephenMuecke 所说。
  • 哦,谢谢,是的,我知道它不应该出现在视图中,我是 MVC 的新手,所以我现在只是在学习设计模式。
  • 我的意思是你有答案!并不是说你是新手。每个人都必须从某个地方开始。干杯。

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


【解决方案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>}

【讨论】:

  • 干杯!选择第一个选项
猜你喜欢
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多