ASP.NET MVCで、JSONファイルをserializeしたオブジェクトをcontrollerで、アラートや出力ウインドウなどで表示できるかを試しているのですが、返ってくるのはNULL値ばかりです。
View内で手打ちした内容は持ってきているのですが、ファイルから読み込んだものは持ってきていないようです。
ファイルを見てみると、中で、階層構造となっているっぽくて、Model部分で定義されているクラスのデータを構造化すればいいんじゃないかというアドバイスをもらったのですが、調べてみても、構造化の宣言した後にクラスの宣言をしたサンプルがのっている記事はありませんでした。
(前述の解決方法が正しいかはさておき)JSONファイルの内容をserializeしたオブジェクトをコントローラに持っていけるような解決策を教えて欲しいです。
開発環境: Visualstudio2017 .NETFramework4.6
言語: ASP.NET MVC C#
使用ツール:DHTMLX Gantt (URL:https://docs.dhtmlx.com/gantt/ )
【コード】
<index.cshtml>
Javascript
1<script type="text/javascript" > 2function jsonExport() { 3var json = new Object(); 4json = gantt.serialize('json'); 5var gnt = JSON.stringify(json.data); 6alert(gnt); 7var aj = '@Url.Action("JSONTest")'; 8 9$.ajax( 10{ 11type: 'POST', 12url: aj, 13data: gnt, 14dataType: 'json', 15contentType: 'application/json', 16 17error: function () { }, 18complete: function (data) { alert(data.responseText) } 19} 20); 21} 22</script>
[HomeControllers.cs]
C#
1public ActionResult JSONTest(Data viewModel,Object son) 2{ 3string[] vs = new string[4]; 4vs[0] = viewModel.Text; 5vs[1] = viewModel.StartDate.ToString(); 6vs[2] = viewModel.EndDate.ToString(); 7vs[3] = viewModel.Duration.ToString(); 8return Json(vs); 9}
[Data.cs(Model)]
C#
1namespace GantDHT.Models 2{ 3public class Data { 4 5public int Id { get; set; } 6public string Text { get; set; } 7public DateTime StartDate { get; set; } 8public DateTime EndDate { get; set; } 9public int Duration { get; set; } 10} 11}
【gntの内容】
[{"id":1,"text":"project #1","start_date":"2020-05-06","end_date":"2020-05-26","user":3,"duration":20,"parent":0,"progress":0},
{"id":2,"text":"Task #1","start_date":"2020-05-06","end_date":"2020-05-16","user":0,"duration":10,"parent":1,"progress":0},
{"id":3,"text":"Task #2","start_date":"2020-05-16","end_date":"2020-05-26","user":0,"duration":10,"parent":1,"progress":0}]
回答1件
あなたの回答
tips
プレビュー