如何识别通过Ajax发布的System.DayOfWeek值数组

时间:2012-03-30 20:15:41

标签: jquery ajax asp.net-mvc

这是一个常见问题的略有原创的变体。我有一个相当简单的模型,如下所示:

public class Departure
{
    public string Id { get; set; }
    public Route Route { get; set; }
    public TimeSpan Time { get; set; }
    public string Timetable { get; set; }
    public DayOfWeek[] ServicesRunning { get; set; }
    public string Notes { get; set; }
}

我将填充的对象发布回服务器,但填充DayOfWeek值的数组是有问题的。整数值和字符串未被正确识别,因此必须有一种特殊的技术才能正确执行此操作,但我无法解决这个问题。

非常感谢任何帮助。 post方法如下所示:

    // POST /api/stops
    [HttpPost]
    public void Post(Departure dep)
    {
        Session.Store(dep);
    }

2 个答案:

答案 0 :(得分:0)

您可以编写一个ModelBinder来设置从通过AJAX传入的整数中的DayOfTheWeek枚举值。有关详细信息,请查看此答案。

Model Binding to Enums in ASP.NET MVC 3

答案 1 :(得分:0)

以下内容:

$.ajax({
    url: '@Url.Action("post")',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({
        dep: {
            servicesRunning: [ 'Monday', 'Tuesday', 'Wednesday' ]
        }
    }),
    success: function () {

    }
});

对我来说很好。