нужно руководство для этого сценария asp.net MVC - PullRequest
0 голосов
/ 25 января 2011

Я занимаюсь разработкой небольшого базового приложения asp.net mvc для онлайн-тестирования / экзамена.У меня есть сценарий, например, когда пользователь запрашивает нагрузочный тест, я получаю список объектов списка вопросов LIST в действии index моего контроллера.но требование состоит в том, что этот пользователь не должен видеть все вопросы за один раз, а не один за другим должен появляться вопрос.Я сохранил приблизительное время для каждого вопроса, где в правом верхнем углу я показываю сумму времени для всех вопросов, чтобы пользователь мог видеть ограничение по времени.это таймер, который уменьшается с каждой секундой.Я не совсем понимаю, как сохранить таймер запуска для всех вопросов.И как я могу поставить один за другим вопрос, а не все.поскольку в asp.net mvc нет обратной передачи, реализация этого сценария довольно сложна.пожалуйста, руководство

Отредактировано: * Могу ли я сделать это? *

[HttpGet]

public ActionResult Index(int? testId)
{
    int id = Convert.ToInt32(testId);
    List<Question> questionList;// = new List<Question>();
    questionList = questionManager.GetquestionsByTestId(id);

    if (questionList != null)
    {
        foreach (Question q in questionList)
        {
            return RedirectToAction("LoadNextQuestion", "LoadTest", q);

        }

        return View();                
    }
    else
    {
        return View();
    }
}

public ActionResult LoadNextQuestion(Question objQuestion)
        {
            Question question = questionManager.GetQuestionById(objQuestion.QuestionId);
            ViewData["Question"] = question;
            return View();
        }

Ответы [ 2 ]

1 голос
/ 25 января 2011
  1. Вам не нужен список для этого

  2. Создайте пользовательский элемент управления или страницу и поместите на главную страницу, отображая каждый вопрос за раз. (Предположим, пользовательбудет нажимать для следующих вопросов).для следующего вопроса отправьте форму, чтобы у вас было время ответа пользователя, а также время.

  3. Вы можете использовать вызов json / ajax для получения следующих вопросов.

  4. Используйте Java-скрипт для отслеживания времени (напишите функцию OnDocumentReady или что-то еще, что сработает после заполнения вопроса)

  5. Не забудьте опубликовать истекшее время с ответом пользователя, такВам не нужно беспокоиться о затратах времени на вопрос.

1 голос
/ 25 января 2011

Я думаю, тебе придётся пойти AJAX на этом.Во-первых, из-за загрузки 1 вопроса за раз, а во-вторых, из-за того, что не обновляется вся страница и не получается таймер с сервера;вам, вероятно, придется обрабатывать состояние таймера на сервере, чтобы принудительное обновление не влияло на него.Просто мои два цента.

...