Javascript 如何在单选按钮中排序和显示元素?

Javascript 如何在单选按钮中排序和显示元素?,javascript,c#,asp.net-mvc,list,razor,Javascript,C#,Asp.net Mvc,List,Razor,我的模型中有数据IList类型,返回yyyyMM格式的字符串日期,我需要帮助以单选按钮的形式以MM/yyyy格式降序显示数组元素 我的模型如下所示: public class DataToLoad { public List<string> Months{ get; set; } } 在我看来,我有以下内容来显示单选按钮中的数组元素 foreach (var record in Model.Months) { <div class=&q

我的模型中有数据IList类型,返回yyyyMM格式的字符串日期,我需要帮助以单选按钮的形式以MM/yyyy格式降序显示数组元素

我的模型如下所示:

 public class DataToLoad
 {
        public List<string> Months{ get; set; }       
 }
在我看来,我有以下内容来显示单选按钮中的数组元素

foreach (var record in Model.Months)
{
  <div class="radio col-12">
     <div class="row">
       <div class="col-5" style="">
         @Html.RadioButton("Months", record, true, new { id = record, @class = "m-r" })<label>@record</label>
        </div>
      </div>
   </div>
}

如果Months返回199008和19909,我需要对值进行降序排序并设置为MM/yyyy格式,然后使用单选按钮09/1990显示值,然后是08/1990。有什么帮助吗?

与任何其他C代码一样,使用Linq:

   @foreach (var record in Model.Months.OrderBy(x => x))
   {
     <div class="radio col-12">
        <div class="row">
          <div class="col-5" style="">
            @Html.RadioButton("Months", record, true, new { id = record, @class = "m-r" })<label>@record</label>
           </div>
         </div>
      </div>
    }

与任何其他C代码一样,使用Linq:

   @foreach (var record in Model.Months.OrderBy(x => x))
   {
     <div class="radio col-12">
        <div class="row">
          <div class="col-5" style="">
            @Html.RadioButton("Months", record, true, new { id = record, @class = "m-r" })<label>@record</label>
           </div>
         </div>
      </div>
    }
您可以使用以下代码:

foreach (var record in Model.Months.Select(x=>$"{x.Substring(4,2)}/{x.Substring(0,4)}").OrderByDescending(x=>x))
{
     <div class="radio col-12">
        <div class="row">
          <div class="col-5" style="">
            @Html.RadioButton("Months", record, true, new { id = record, @class = "m-r" })<label>@record</label>
           </div>
         </div>
      </div>
}
您可以使用以下代码:

foreach (var record in Model.Months.Select(x=>$"{x.Substring(4,2)}/{x.Substring(0,4)}").OrderByDescending(x=>x))
{
     <div class="radio col-12">
        <div class="row">
          <div class="col-5" style="">
            @Html.RadioButton("Months", record, true, new { id = record, @class = "m-r" })<label>@record</label>
           </div>
         </div>
      </div>
}

非常感谢。是的,这是可行的,但如何将字符串格式化为MM/yyyy格式,并在我假设的标签中自动选择当前显示为yyyyMM的第一个?同样,与任何其他C日期格式代码一样:@record.ToStringyyyyMMOh我刚刚注意到它们是实际的字符串,在这种情况下,如果您想首先将其设置为日期时间,您应该只使用日期时间,而不使用字符串:@DateTime.ParseExactrecord,MM/yyyy,CultureInfo.InvariantCulture.tostringyyyyymm谢谢!!是的,这是可行的,但如何将字符串格式化为MM/yyyy格式,并在我假设的标签中自动选择当前显示为yyyyMM的第一个?同样,与任何其他C日期格式代码一样:@record.ToStringyyyyMMOh我刚刚注意到它们是实际的字符串,在这种情况下,如果您想首先将其设置为日期时间,您应该只使用日期时间,而不使用字符串:@DateTime.ParseExactrecord,MM/yyyy,CultureInfo.InvariantCulture.tostringyyyyymm谢谢您的工作非常好!,有没有办法默认选择最早的日期?例如,如果日期默认为199008和19909 08/1990单选按钮自动选择?。现在,当order desc选择旧日期作为默认日期时,升序将选择最近的日期date@kukamuk不客气。当然,在降序之后,列表上的最后一项是最早的日期。如果可以使用for而不是foreach,如果在i==Model.Months.Count-1的情况下选中了=true,则将选择默认值。有关检查的更多信息,请访问Ramil!。其中i==Model.Months.Count-1使用foreach?谢谢你,这非常好用!,有没有办法默认选择最早的日期?例如,如果日期默认为199008和19909 08/1990单选按钮自动选择?。现在,当order desc选择旧日期作为默认日期时,升序将选择最近的日期date@kukamuk不客气。当然,在降序之后,列表上的最后一项是最早的日期。如果可以使用for而不是foreach,如果在i==Model.Months.Count-1的情况下选中了=true,则将选择默认值。有关检查的更多信息,请访问Ramil!。其中i==使用foreach的Model.Months.Count-1?