C# 带有IEnumerable的ASP.NET MVC SelectList出现问题<;日期时间>;

C# 带有IEnumerable的ASP.NET MVC SelectList出现问题<;日期时间>;,c#,.net,asp.net,asp.net-mvc,asp.net-mvc-2,C#,.net,Asp.net,Asp.net Mvc,Asp.net Mvc 2,与往常一样,MVC框架中的SelectList出现问题。由于某些原因,从未设置所选值: public class MyViewModel { public DateTime? SelectedServiceTime { get; set; } public IEnumerable<DateTime> AvailableServiceTimes { get; set; } public SelectList ServiceTimesList {

与往常一样,MVC框架中的SelectList出现问题。由于某些原因,从未设置所选值:

public class MyViewModel
{    
    public DateTime? SelectedServiceTime { get; set; }
    public IEnumerable<DateTime> AvailableServiceTimes { get; set; }
    public SelectList ServiceTimesList
    {
        get
            {
                SelectList selectList = new SelectList(AvailableServiceTimes, SelectedServiceTime.ToString());
                return selectList;
            }
    }
}

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyViewModel>" %>
<asp:Content ID="MainContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
    <%using (Html.BeginForm())  { %>

        <%:Html.DropDownListFor(x => x.SelectedServiceTime, Model.ServiceTimesList, new { size = 6 }) %><br />
        <input type="submit" name="nextButton" value="Next" />    

    <%} %>
</asp:Content>
公共类MyViewModel
{    
公共日期时间?SelectedServiceTime{get;set;}
公共IEnumerable AvailableServiceTimes{get;set;}
公共选择列表服务时间列表
{
得到
{
SelectList SelectList=new SelectList(AvailableServiceTimes,SelectedServiceTime.ToString());
返回选择列表;
}
}
}
x、 SelectedServiceTime,Model.ServiceTimesList,新建{size=6})%>

日期格式解析可能有问题。尝试使用
“yyyy-MMM-dd”
格式化日期,而不是依赖
.ToString()
。无论浏览器和服务器中的区域性是什么(假设您只关心日期,如果需要,请添加时间部分),都会正确解析


如果不起作用,请尝试添加一个默认值,例如
DateTime.MinValue
,并检查该值,而不是使用
DateTime?
。这通常不是问题,但值得尝试并找出问题所在。

这可能是日期格式解析的问题。尝试使用
“yyyy-MMM-dd”
格式化日期,而不是依赖
.ToString()
。无论浏览器和服务器中的区域性是什么(假设您只关心日期,如果需要,请添加时间部分),都会正确解析

如果不起作用,请尝试添加一个默认值,例如
DateTime.MinValue
,并检查该值,而不是使用
DateTime?
。这通常不是一个问题,但值得一试,找出问题所在