Проблема с ASP.NET MVC SelectList с IEnumerable <DateTime> - PullRequest
1 голос
/ 08 сентября 2010

Как обычно, возникают проблемы с SelectList в среде MVC. По какой-то причине выбранное значение никогда не устанавливается:

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>

1 Ответ

1 голос
/ 08 сентября 2010

Это может быть проблемой при разборе формата даты.Попробуйте форматировать даты с помощью "yyyy-MMM-dd", а не полагаться на .ToString().Это правильно анализирует, независимо от того, какая культура в браузере и на сервере (если вы заботитесь только о дате, добавьте часть времени, если это необходимо).

Если это не работает, попробуйте добавить значение по умолчаниюкак DateTime.MinValue и проверка этого вместо использования DateTime?.Обычно это не проблема, но стоит попытаться выяснить, где проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...