Binit_Bihari Ответов: 1

Как увеличить значение переменной каждый раз, когда пользователь нажимает кнопку next?


int id=1;
public PartialViewResult ViewQuestions()
        {
            
            string constr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
            GetQuestions getquest = new GetQuestions();
            try
            {
                SqlConnection con = new SqlConnection(constr);
                con.Open();
                SqlCommand cmd = new SqlCommand("Select q.QuestID,q.QImage,q.Question,o.FOption,o.SOption,o.TOption,o.FROption from QuestionSet as q join OptionSet as o on q.QuestID=o.QuestID where q.QuestID=@questid ", con);
                cmd.Parameters.AddWithValue("@questid", id);
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    getquest.QuestID = dr.GetInt32(0);
                    getquest.QuestImage = dr.GetString(1);
                    getquest.Question = dr.GetString(2);
                    dr.Close();
                    SqlCommand cmd1 = new SqlCommand("Select Foption,Soption,Toption,FRoption from Optionset where QuestID=@questid ", con);
                    cmd1.Parameters.AddWithValue("@questid", id);
                    SqlDataReader dr1 = cmd1.ExecuteReader();
                    if (dr1.Read())
                    {
                        List<Options> opt = new List<Options>();
                        opt.Add(new Options { Option1 = dr1.GetString(0) });
                        opt.Add(new Options { Option1 = dr1.GetString(1) });
                        opt.Add(new Options { Option1 = dr1.GetString(2) });
                        opt.Add(new Options { Option1 = dr1.GetString(3) });
                        getquest.Options = opt;
                    }
                    dr1.Close();
                    
                    
                }


            }
            catch (Exception ex)
            {

            }
            return PartialView(getquest);
        }
        [HttpPost]
        public RedirectToRouteResult Forward()
        {
            
            int ID = Convert.ToInt32(Request.Form["QuestID"]);
            id = ID + 1;
            
            
            return RedirectToAction("ViewQuestions");
        }


Что я уже пробовал:

Я пытаюсь обновить значение id каждый раз, когда пользователь нажимает кнопку "Далее" со страницы просмотра . Я назначаю метод post "Forward" для этого?

Заранее спасибо.

1 Ответов

Рейтинг:
5

RebelStar

Передайте id в качестве аргумента методу ViewQuestion ().
И ех=ах кнопку вызова ViewQuestion(int идентификатор) с ID= увеличивается стоимость.
Держите идентификатор в коде за слоем


Binit_Bihari

но я не хочу показывать его в своем url-адресе

RebelStar

затем отправить ID, используя в кодировке base64 строки запросов : URL-адрес?м=yourbase64id
или
как параметр в кодировке base64: ViewQustion(строка youbase64id)

и затем декодировать его обратно, чтобы получить int идентификатор

Binit_Bihari

да, это должна быть хорошая идея. Спасибо