Ajax Call ($.ajax) を使用して ASP.NET MVC RAZOR から ActionResult (コントローラー上) にデータのリストを送信しようとしましたが、コントローラー (サーバー側) では ActionResult のパラメーターが NULL です。
//ajax call
$.ajax({
url: "@Url.Content("~/DayPartConfig/Index")",
type: "POST",
cache: false,
data: myItems,
success: function(data){
alert('success');
},
error: function () {
alert('Error updating the time interval.');
},
complete: function(){
//hide preloader
alert('preloader');
}
});
myItems のプロパティの名前と構造は DayPart と同じです。
public partial class DayPart
{
public DayPart()
{
this.EventGoalDayParts = new HashSet<EventGoalDayPart>();
}
public int DayPartID { get; set; }
public int Position { get; set; }
public string Name { get; set; }
public bool IsEnable { get; set; }
public Nullable<System.TimeSpan> Start { get; set; }
public Nullable<System.TimeSpan> End { get; set; }
public virtual ICollection<EventGoalDayPart> EventGoalDayParts { get; set; }
}
そしてJavaScriptから:
for (i = 1 ; i<= @Model.Count()-1;i++)
{
CreatedItem = {'DayPartID': i,
'Position': i,
'Name': $("#Name_"+i).val(),
'IsEnable': $("#IsEnable_"+i).val(),
'Start': $('#timepicker-'+ i).val()
};
myItems[i] = CreatedItem;
//alert(myItems[i]);
}
そして今、なぜコントローラーからのモデルがnullなのですか????
[HttpPost]
public ActionResult Index(List<DayPart> model)
{
...
}