Я попытался сохранить данные в файл json, используя угловую запись js $ http на контроллер asp.net
Вот мои коды
вид с угловым js
var postdata =
{
Email: "test1@gmail.com",
selectedanswers: jsonArr
};
$http({
url: "/page/PostFileWithData",
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
method: "POST",
dataType: "json",
traditional: true,
data: JSON.stringify(postdata)
}).success(function (data) {
console.log(data);
}).error(function (data) {
console.log('fail');
});
Модал asp.net c #
public class UserModel
{
public string Email { get; set; }
//public string selectedanswers { get; set; }
//public Dictionary<int, int> selectedanswers { get; set; }
//public List<selectedanswersModel> selectedanswers { get; set; }
public List<Answer> selectedanswers { set; get; }
}
public class Answer
{
public int AnswerId { set; get; }
}
Контроллер в asp.net
[HttpPost]
public JsonResult PostFileWithData(UserModel userdata)
{
UserModel udata = new UserModel
{
Email = userdata.Email,
selectedanswers = userdata.selectedanswers
};
var json = System.IO.File.ReadAllText(Server.MapPath("~/App_Data/data.json"));
JArray array = JArray.Parse(json);
var itemToAdd = new JObject();
itemToAdd["Email"] = userdata.Email;
itemToAdd["selectedanswers"] = userdata.selectedanswers;
array.Add(itemToAdd);
var jsonToOutput = JsonConvert.SerializeObject(array, Formatting.Indented);
System.IO.File.WriteAllText(Server.MapPath("~/App_Data/data.json"), jsonToOutput);
return Json(udata, JsonRequestBehavior.AllowGet);
}
Моя проблема в контроллере JsonResult, где я хотел сохранить опубликованные данные в файл data.json
это только хранение данных электронной почты, но не выбранные ответы относительно этого
itemToAdd["selectedanswers"] = userdata.selectedanswers;
эта строка кода для хранения в индексе, я получаю сообщение об ошибке в этой строке
так что отобранные ответы не хранятся в json-файле, я получаю эти данные в console.log
вот мой результат console.log
[console result][1]
Не могли бы вы мне помочь?
Спасибо