powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 5 Радиокнопки на View. отменить выбор пользователя
5 сообщений из 5, страница 1 из 1
MVC 5 Радиокнопки на View. отменить выбор пользователя
    #40064528
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброе время суток, коллеги!

есть след модель:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    public class QuestionData
    {
        public Int64 ID { get; set; }  //recno
        public Int64 GroupID { get; set; }
        public string GroupText { get; set; }
        public Int64 QuestionID { get; set; }
        public string QuestionText { get; set; }
        public bool Res2 { get; set; } = false;
        public bool Res3 { get; set; } = false;*/
        public bool TextQuest { get; set; }
        public string AnswerText { get; set; } = "";
        public List<ContentmentChoice> ListCC { get; set; }
        public int? SelectedChoice { get; set; }
    }
    public class ContentmentChoice
    {
        public int ChoiceID { get; set; }
        public string ChoiceText { get; set; }  //useranswer
    }



заполняемая в цикле (25 вопросов)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
                    QuestionData qData = new QuestionData();
                    qData.ID = ContentUser.CurrQuestNumber;
                    qData.GroupID = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].GroupID;
                    qData.GroupText = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].GroupText;
                    qData.QuestionID = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].QuestionID;
                    qData.QuestionText = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].QuestionText;
                    qData.TextQuest = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].TextQuest;
                    qData.SelectedChoice = null;

                    qData.ListCC = new List<ContentmentChoice>();
                    qData.ListCC.Add(new ContentmentChoice
                    {
                        ChoiceID = 3,
                        ChoiceText = "Да, согласен"
                    });
                    qData.ListCC.Add(new ContentmentChoice
                    {
                        ChoiceID = 2,
                        ChoiceText = "Затрудняюсь с ответом"
                    });
                    qData.ListCC.Add(new ContentmentChoice
                    {
                        ChoiceID = 1,
                        ChoiceText = "Нет, не согласен"
                    });                 

                    return View(qData);


и передаваемая на View
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
@model Inspinia_MVC5_SeedProject.Models.QuestionData

@{

    Layout = null;
}


@if (Model != null)
{
    using (Html.BeginForm("ContentStart", "Contentment", FormMethod.Post))
    {
<div class="col-md-6">
    Блок @Model.GroupText
    

    

    

    @Model.QuestionText
    

    @if (Model.TextQuest == false)
    {
        <div class="form-group radio i-checks">
            @foreach (var x in Model.ListCC)
            {
                <label>
                    @Html.RadioButtonFor(m => m.SelectedChoice,  x.ChoiceID,  new { id = x.ChoiceID })
                    <i></i>
                    @x.ChoiceText
                </label>
                


            }
        </div>
    }
    else
    {
        <div class="form-group">

            <textarea cols="200" rows="10" id="AnswerText" name="AnswerText" value="@Model.AnswerText">     </textarea>
            


        </div>
    }
    <div class="form-group">
        <button type="submit" id="btnSubmit" class="btn btn-primary">Ответить</button>
     </div>

</div>

    }
}



все хорошо.
но...
после первого ответа программа запоминает выбор пользователя и при переоткрытии View отображает его.
как сделать, чтобы переходе к след вопросу все радиокнопки становились невыбранными без перехода к PartialView?

заранее сасибо.
...
Рейтинг: 0 / 0
MVC 5 Радиокнопки на View. отменить выбор пользователя
    #40064532
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не показано самое главное - код POST-метода контроллера
...
Рейтинг: 0 / 0
MVC 5 Радиокнопки на View. отменить выбор пользователя
    #40064622
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код POST-метода контроллера:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
        [HttpPost]
        [Authorize]
        public ActionResult ContentStart(QuestionData questData)
        {

                if (questData.AnswerText == null)
                {
                    questData.AnswerText = "";
                }

                ContentmentModel ContentUser = Session["CurrentContent"] as ContentmentModel;
                Int32 ID = ContentUser.CurrQuestNumber;
                ContentUser.CurrQuestNumber = ContentUser.CurrQuestNumber + 1;                                
                Int32 Ans = 0;

                try
                {
                    Ans = Convert.ToInt32(questData.SelectedChoice); //нажата ли радиокнопка пользователем
                    questData.SelectedChoice = null;
                }
                catch (Exception xx)
                {
                    Ans = 0;
                }

                if (ContentUser.ListQD[ID-1].TextQuest==false) //ответ на выборку радиокнопки или текстовый?
                {
                    if (Ans>0)
                    {
                        //save answer
                    }
                    else //кнопка не нажата. возврат вопроса
                    {
                        ContentUser.CurrQuestNumber = ContentUser.CurrQuestNumber - 1;
                    }
                }
                else
                {
                    //save answer text
                }

                if (ContentUser.CurrQuestNumber > ContentUser.ListQD.Count)
                {
                    GC.Collect();
                    return RedirectToAction("UserContentResult");
                }
                else
                {
                    QuestionData qData = new QuestionData();
                    qData.ID = ContentUser.CurrQuestNumber;
                    qData.GroupID = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].GroupID;
                    qData.GroupText = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].GroupText;
                    qData.QuestionID = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].QuestionID;
                    qData.QuestionText = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].QuestionText;
                    qData.TextQuest = ContentUser.ListQD[ContentUser.CurrQuestNumber - 1].TextQuest;
                    qData.SelectedChoice = null;

                    qData.ListCC = new List<ContentmentChoice>();
                    qData.ListCC.Add(new ContentmentChoice
                    {
                        ChoiceID = 3,
                        ChoiceText = "Да, согласен"
                    });
                    qData.ListCC.Add(new ContentmentChoice
                    {
                        ChoiceID = 2,
                        ChoiceText = "Затрудняюсь с ответом"
                    });
                    qData.ListCC.Add(new ContentmentChoice
                    {
                        ChoiceID = 1,
                        ChoiceText = "Нет, не согласен"
                    });                 

                    Session["CurrentContent"] = ContentUser;
                    GC.Collect();

                    return View(qData);
                }
            }
            else
            {
                ViewBag.Msg = "Ошибка чтения таблицы базы данных!!";
                return RedirectToAction("Index", "Home");
            }
        }
...
Рейтинг: 0 / 0
MVC 5 Радиокнопки на View. отменить выбор пользователя
    #40064627
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
raven_2008
код POST-метода контроллера:

https://ru.wikipedia.org/wiki/Post/Redirect/Get
...
Рейтинг: 0 / 0
MVC 5 Радиокнопки на View. отменить выбор пользователя
    #40064644
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 5 Радиокнопки на View. отменить выбор пользователя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]