Я пытаюсь отправить модель в действие контроллера ASP.NET MVC, но по какой-то причине я не могу правильно обработать массив.
Код Javascript, массив «Дни»
var days = [];
var i = 0;
$('input[name="Days[]"]:checked').each(function(){
days[i] = $(this).val();
i++;
});
var postData = {
listId: listId,
Quantity: $('select[name="@Html.NameFor(x=> x.Quantity)"]').val(),
Item: $('input[name="@Html.NameFor(x=> x.Item)"]').val(),
RepeatingType: $('select[name="@Html.NameFor(x=> x.RepeatingType)"]').val(),
IntervalDaily: $('select[name="@Html.NameFor(x=> x.IntervalDaily)"]').val(),
IntervalWeekly: $('select[name="@Html.NameFor(x=> x.IntervalWeekly)"]').val(),
IntervalMonthly: $('select[name="@Html.NameFor(x=> x.IntervalMonthly)"]').val(),
IntervalYearly: $('select[name="@Html.NameFor(x=> x.IntervalYearly)"]').val(),
Days: days,
Time: $('input[name="@Html.NameFor(x=> x.Time)"]').val(),
StartsOn: $('input[name="@Html.NameFor(x=> x.StartsOn)"]').val(),
EndType: $('select[name="@Html.NameFor(x=> x.EndType)"]').val(),
EndsOn: $('input[name="@Html.NameFor(x=> x.EndsOn)"]').val(),
EndOccurrences: $('select[name="@Html.NameFor(x=> x.EndOccurrences)"]').val()
};
alert(postData.Days);
$.ajax({
type: "POST",
url: "/List/AddRepeatingItem/",
dataType: "json",
data: postData,
success: function(data) {
if (data) {
alert("Success");
}
}, error: function(xhr, status, error) {
DisplayError("Error!!! " + xhr);
}
});
return false;
Модель, которую я пытаюсь отправить
public class NewRepeatingItemModel
{
[Required]
[DisplayName("Quantity")]
[Integer]
public int Quantity { get; set; }
[Required]
[DisplayName("Item")]
[StringLength(50, MinimumLength = 3, ErrorMessage = "Item name can not be less then 3 or greater then 50")]
public string Item { get; set; }
[Required]
[DisplayName("Type")]
public int RepeatingType { get; set; }
[DisplayName("Repeat every")]
public int IntervalDaily { get; set; }
[DisplayName("Repeat every")]
public int IntervalWeekly { get; set; }
[DisplayName("Repeat every")]
public int IntervalMonthly { get; set; }
[DisplayName("Repeat every")]
public int IntervalYearly { get; set; }
[DisplayName("Repeat on")]
public IList<int> Days { get; set; }
[Required]
[DisplayName("Time")]
public TimeSpan Time {get; set;}
[DisplayName("Starts On")]
[DataAnnotationsExtensions.Date]
public DateTime StartsOn {get; set;}
[Required]
[DisplayName("End Type")]
public int EndType { get; set; }
[DisplayName("Ends On")]
public DateTime EndsOn {get; set;}
[DisplayName("Occurrences")]
public int EndOccurrences { get; set; }
}
И действие
public JsonResult AddRepeatingItem(int listId, NewRepeatingItemModel model)
{
Что я могу сделать, чтобы правильно получить список дней?Я проверил массив, сделав предупреждение (postData.Days), и это предупреждает "1,5"