2010-09-08 6 views
1

Comme d'habitude, vous rencontrez des problèmes avec SelectList dans le framework MVC. La valeur sélectionnée n'est jamais définie pour une raison quelconque:Problème avec ASP.NET MVC SelectList avec IEnumerable <DateTime>

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> 

Répondre

1

Il peut s'agir d'un problème d'analyse de format de date. Essayez de formater vos dates avec "yyyy-MMM-dd" plutôt que de compter sur .ToString(). Cette analyse correctement quelle que soit la culture dans le navigateur et le serveur (en supposant que vous vous souciez seulement de la date, ajouter la partie de temps si nécessaire).

Si cela ne fonctionne pas, essayez d'ajouter une valeur par défaut de quelque chose comme DateTime.MinValue et vérifiez cela plutôt que d'utiliser DateTime?. Ce n'est généralement pas un problème, mais quelque chose vaut la peine d'essayer de déterminer où se situe le problème.

Questions connexes