与DateTimeFormatInfo()和FirstDayOfWeek的html帮助问题

时间:2010-11-07 20:39:48

标签: c# asp.net-mvc

我有一个小问题,今天让我烦恼!我已经创建了一个小帮手方法,我希望它总是在星期一作为一周的第一天(即星期一= 0)返回,但似乎无法弄清楚我哪里出错了。我正在设置我'感觉'是对现有文化的超越,但无济于事。

不用多说,代码:

public static string ComboDaysOfWeekNumber(this HtmlHelper helper, 
                     string id, string selectedValue)
{
    var cultureInfo = new DateTimeFormatInfo();
    cultureInfo.FirstDayOfWeek = DayOfWeek.Monday;
    var newitems = cultureInfo
        .DayNames
        .Select((dayName, index) => new SelectListItem
        {
            Value =(index).ToString(),
            Text = dayName,
            Selected = (selectedValue == dayName)
        });

    var result = helper.DropDownList(id, newitems).ToHtmlString();
    return result;
}

用法:

<%=Html.ComboDaysOfWeekNumber("weekSplitEnd", myModelDayNo.ToString())%>

无论如何,这总是在星期日= 0开始。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

DayNames不依赖于FirstDayOfWeek属性,并且设置它不会产生任何影响。你可以试试这个:

var cultureInfo = new DateTimeFormatInfo();
var dayNames = new[] 
{
    DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, 
    DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Saturday, 
    DayOfWeek.Sunday 
}.Select(cultureInfo.GetDayName);

var newitems = dayNames
    .Select((dayName, index) => new SelectListItem
    {
        Value =(index).ToString(),
        Text = dayName,
        Selected = (selectedValue == dayName)
    });

var result = helper.DropDownList(id, newitems).ToHtmlString();
return result;

答案 1 :(得分:0)

达林,

现在回来,这就是我想出的:

public static MvcHtmlString ComboDaysOfWeekNumber(this HtmlHelper helper, 
                              string id, int selectedValue)
{

    var dayNames = new[]
                       {
                           DayOfWeek.Monday, DayOfWeek.Tuesday, 
                           DayOfWeek.Wednesday, DayOfWeek.Thursday, 
                           DayOfWeek.Friday, DayOfWeek.Saturday,
                           DayOfWeek.Sunday
                       };

    var newitems = dayNames
        .Select((dayName, index) => new SelectListItem
        {
            Value =(index).ToString(),
            Text = dayName.ToString(),
            Selected = (selectedValue == index)
        });

    var result = helper.DropDownList(id, newitems);
    return result;
}

这似乎'按预期工作'。感谢指点。

吉姆