Не удается получить значение элемента selectec с помощью радиокнопки - PullRequest
0 голосов
/ 14 мая 2018

Итак, я пытаюсь создать онлайн-пул, но не могу получить стоимость выбранного элемента ... Если кто-то может мне помочь, вот мой контроллер:

 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" />
}

Поэтому моя цель - получить голос за каждый вопрос и добавить голос в БД, я нене знаю, что я делаю не так ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...