C# 带有IEnumerable的ASP.NET MVC SelectList出现问题<;日期时间>;
与往常一样,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 {
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?
。这通常不是一个问题,但值得一试,找出问题所在