Итак, я пытаюсь создать онлайн-пул, но не могу получить стоимость выбранного элемента ... Если кто-то может мне помочь, вот мой контроллер:
public async Task<IActionResult> Vote(int id, string text)
{
using (var poolDbContext = new PoolContext())
{
var Voted = new Vote();
var queq = new Answer { Id = id, Text = text };
// var Question = await poolDbContext.Questions.Include(s => s.Answers).AsNoTracking().SingleOrDefaultAsync(m => m.Id == id);
var Question = await poolDbContext.Questions.Include(A => A.Answers).AsNoTracking().SingleOrDefaultAsync(r => r.Id == r.Id);
if (Question == null)
{
return NotFound();
}
return View(Question);
}
}
[HttpPost, ActionName("Vote")]
[ValidateAntiForgeryToken]
public ActionResult VotePost(Question question)
{
try
{
if (ModelState.IsValid)
{
using (var poolDbContext = new PoolContext())
{
var id = question.Id.ToString();
var qId = question.Id;
var selectedAnswer = question.SelectedAnswer;
poolDbContext.SaveChanges();
// Save the data
return RedirectToAction("Index");
}
}
return View(question);
}
catch (DbUpdateException /* ex */)
{
ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator.");
}
return View();
}
А также вот моиМодель вопроса:
public class Question
{
public Question()
{
Answers = new List<Answer>();
}
public int Id { get; set; }
public string Text { get; set; }
public virtual List<Answer> Answers { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public Boolean Active { get; set; }
public string SelectedAnswer { set; get; }
}
Вот мой ответ Модель:
public class Answer
{
public int Id { get; set; }
public string Text { get; set; }
public int QuestionId { get; set; }
public List<Vote> Votes { get; set; }
}
А вот моя модель голосования
public int Id { get; set; }
public string IpAdress { get; set; }
public DateTime VoteDate { get; set; }
public List<Question> Questions { set; get; }
public Vote()
{
Questions = new List<Question>();
}
}
Моя цель сейчас - получитьголосуйте по адресу Vote.Cshtml следующим образом:
@model PoolManager.Models.Question
<div>
@Html.HiddenFor(x => x.Id)
<h3> @Model.Text </h3>
@foreach (var a in Model.Answers)
{
<p>
@Html.RadioButtonFor(b => b.SelectedAnswer, a.Id) @a.Text
@Model.SelectedAnswer
</p>
<input type="submit" />
}
Поэтому моя цель - получить голос за каждый вопрос и добавить голос в БД, я нене знаю, что я делаю не так ..