Я пытаюсь получить мою модель из своего веб-приложения в сообщение Action. . Единственная проблема в том, что я получаю объект модели, который имеет 1 нулевые переменные внутри :(Действие: Получение Null от Ajax Post
[HttpPost]
[ValidateAntiForgeryHeader]
public async Task<JsonResult> StartRound(RoundModel model)
модели являются следующие:
Изменить: Благодаря Ник Бейли, я начал находить кучу вопросов, редактирует к следующему:
- удален раунд, как это было не нужно
- изменилось Матчи в список не уверен, что если модель конструктора d efaults Интерфейсы
- изменился OldId в целое, как это единственный тип он никогда не будет и объектом Json было это как межд подходя к действию
- изменил SYSTEMID и AdminAprovedWinnerId в NULLABLE и как ожидается, будет в состоянии быть нуль
- ун-отредактированный все конструкторами, я узнал, что у меня был конструктор по умолчанию не так, следовательно, не было никакого способа, чтобы он был построен
- добавлен конструктор по умолчанию, как указано выше
public class RoundModel
{
public List<ClientMatch> Matches { get; set; } // null in action
}
public class ClientMatch
{
public int OldId { get; set; }
public string RoundName { get; set; }
public string ServerName { get; set; }
public string ServerPassword { get; set; }
public string ServerMessage { get; set; }
public Guid? SystemId { get; set; }
public Guid? AdminAprovedWinnerId { get; set; }
public Guid TeamAId { get; set; }
public Guid TeamBId { get; set; }
public int TeamAVote { get; set; }
public int TeamBVote { get; set; }
public ClientMatch()
{
}
public ClientMatch(MatchWithTmpId noGuid)
{
...
}
}
Как вы заметили, объект Round - это модель First Code с виртуальными атрибутами. Я удалил его из RoundModel непосредственно перед загрузкой этого вопроса, чтобы проверить его, и его удаление не решает проблему.
и мой Ajax опубликовать
Edit: благодаря Ник Бейли, я начал находить кучи вопросов редактирует к следующему:
- SystemId Сейчас проходит нуль в 0 не может разобрать в GUID
- TeamAVote, TeamBVote, проходящий через 1 (который соответствует переименованию)
- В настоящее время у меня есть они вложенные внутри RoundModel, поскольку это было то, что я в последний раз пытался получить работу
POST http://localhost:52690/Admin/StartRound HTTP/1.1
Host: localhost:52690
Connection: keep-alive
Content-Length: 752
Accept: */*
Origin: http://localhost:52690
X-Requested-With: XMLHttpRequest
__RequestVerificationToken: TU5lBruq0K0FBxviWOS1GVjtRFw0edbCvE57bzh3wikqlXTw384jgxGBic61nMgUNwAXRgbf50cpk0naKADQgwnR9aNq1R55SSHj6UvszBRdfJ8nt362OFBQLC7eWLTwAwPJUVkRrFQkCOnZwtL6SQ2
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost:52690/Admin/MatchScheduler
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: redacted
{
"RoundModel":{
"Matches":[
{
"SystemId":null,
"OldId":0,
"RoundName":"awd",
"ServerName":"Apogawd0",
"ServerPassword":"apog",
"ServerMessage":"Can Team \"Lovin it\" please create server \"Apogawd0\" hosted in Oceania Servers, random map",
"AdminAprovedWinnerId":null,
"TeamAId":"74206e93-33aa-48d4-bac2-5f9acac0be90",
"TeamBId":"35d4be62-4e3e-4575-8ce9-6c819382b50c",
"TeamAVote":1,
"TeamBVote":1
}
]
}
}
Любые и все оцененная помощь, Ура, Майкл.
редактировать продолжение: Я сделал наделит изменения благодаря Нику remdining мне основы, ха-ха, я потратил слишком много времени в JS земле. Все еще получаю null на матчи
За ваше редактирование - неясно, исправлена ли проблема, если она исправлена или нет? Кроме того, в качестве быстрого теста вы можете попробовать удалить '[ValidateAntiForgeryHeader]' и посмотреть, если он публикует сообщения, хотя я действительно не говорю, что это проблема, поскольку я вижу это в вашем запросе. –
На момент редактирования этого не было, но я нашел последнюю часть головоломки, записывая решение сейчас. –