Я делаю простой опрос, для обучения основам ASP.NET MVC 4. Вот мой кодпередачи данных между контроллером и зрения - ASP.NET MVC 4
[HttpGet]
public ActionResult Index()
{
UserAndTableViewmodel Viewmodel = new UserAndTableViewmodel();
Viewmodel.T = Deserialize();
Viewmodel.U = new User();
for (int i = 0; i < Viewmodel.T.Questions.Count(); i++)
{
Viewmodel.U.UserChoices.Add(new Choice(Viewmodel.T.Questions[i].Choices[0].Value));
}
return View(Viewmodel);
}
[HttpPost]
public ActionResult Index(UserAndTableViewmodel Viewmodel)
{
// Viewmodel.T = Deserialize();
if (ModelState.IsValid)
{
return View("Thanks", Viewmodel);
}
else
{
return View(Viewmodel);
}
}
XML-код это как следует:
<Table>
<Question Content="Question one">
<Choice Value="Answer 1" />
<Choice Value="Answer 2" />
</Question>
<Question Content="Question two">
(...)
</Question>
</Table>
Я проходящее deserialised данные в "Index" вид, где пользователь может выберите его ответы. Затем данные отправляются в [HttpPost], и я хочу, чтобы он отображал представление, где записывается каждый вопрос с его ответом, но возникает проблема - Viewmodel.T
равно нулю. Что я должен делать, что я не должен снова десериализовать его?
Если вы не имеете поле в View делает вашу собственность его ViewModel.T не будет отправлен в метод HttpPost. – bump
Как это достичь? – blisher
см. Ответ ниже – bump