【问题标题】:need guidance for this asp.net mvc scenario需要此 asp.net mvc 方案的指导
【发布时间】:2011-02-01 21:33:48
【问题描述】:

我正在开发用于在线测试/考试的小型 asp.net mvc 基础应用程序。我有这样的场景,当用户要求进行负载测试时,我得到问题对象列表 LIST 在我的控制器的索引操作中。但要求是这个用户不能一次看到所有的问题,而不是一一出现。我保留了每个问题的估计时间,因为我在右上角显示了所有问题的时间总和,以便用户可以看到时间限制。它是每秒减少的计时器。我对如何为所有问题保持普遍的运行计时器感到困惑。我怎样才能一一提出问题而不是所有问题。由于 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();
        }

【问题讨论】:

  • 感谢您删除 -1 亲爱的。因为这可能会很复杂。对于像我这样的开发人员。

标签: ajax asp.net-mvc-2 master


【解决方案1】:
  1. 你不需要这个列表

  2. 创建用户控件或页面并放入母版页,一次显示每个问题。(假设用户将单击下一个问题)。对于下一个问题,请发布表单,以便您了解用户回答的内容和时间。

  3. 您可以使用 json/ajax 调用来获取下一个问题。

  4. 使用 java 脚本跟踪时间(写入函数 OnDocumentReady 或其他在填充问题后触发的函数)

  5. 不要忘记发布经过的时间以及用户的回答,这样您就不必担心花在问题上的时间。

【讨论】:

  • 谢谢,我怎样才能建立这样的用户控制,请参考?以及在哪里保存获取的问题集合。我在这里使用 List 因为不需要一次又一次地去服务器。外观应该是轻量级的。
  • @Lalit - 没有它的链接,但是如果您使用 vs2010 并且在创建新的 MVC 项目(不是空的)时,它将为您生成默认代码和页面。在那里你可以找到 .ascx(用户控制)。此外,如果您尝试搜索“mvc 中的用户控制”,您将获得大量资源。
  • 不幸的是,我仍在使用 vs 2008。我了解用户控件,但需要了解如何使用用户控件以这种方式构建此场景。我想如果我使用它,那么每次我需要去服务器获取下一个问题时,不是吗?
  • jquery 和 ajax 调用将帮助您,尝试根据您的场景探索它。
  • 好的。我正在使用这种方式,但是如何向我的用户控件或页面提供单个问题。假设我正在使用带有下一步按钮的页面。它接受问题作为参数的动作。但我必须在哪里提供?
【解决方案2】:

我认为你将不得不在这个上使用 AJAX。一是因为一次加载1个问题,二是因为没有刷新整个页面并从服务器获取计时器;您可能必须处理服务器上的计时器状态,因此强制刷新不会影响它。 只是我的两分钱。

【讨论】:

  • 如果这里适用,我肯定会使用 ajax,但是这可以在此处使用向导之类的场景。如何在 asp.net mvc 2 中使用和编码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
  • 2023-01-15
  • 2011-09-11
  • 2020-09-11
相关资源
最近更新 更多