【问题标题】:Testing an MVC application by returning a basic debug ViewResult通过返回基本调试 ViewResult 来测试 MVC 应用程序
【发布时间】:2013-09-06 04:52:43
【问题描述】:

我对 C# 有一定的经验,但对 MVC4 完全陌生,并且正在努力解决一些简单的问题。我正在尝试在现有应用程序中进行一些编辑,从控制器开始,我想通过进行基本测试来确保操作正确运行。

我希望控制器中的一个动作返回一个 ViewResult,其中包含一些我可以摆弄的基本内容(只是一个“Hello World”或类似的东西),只是为了确保该动作返回一个在我开始赋予它更复杂的功能之前正确地查看结果。

目前我的控制器中的动作如下:

    public ActionResult Test()
    {
        var v = new ViewResult();
        v.ViewData["Message"] = "HELLO THERE";
        return v;
    }

显然,您可以看到我正在努力学习基础知识。我看过一些教程,但那些似乎侧重于如何在 Visual Studio 中创建新视图 project 的上下文中创建视图,这不是我想要的。我只想将一些基本内容放到动作中的视图对象中,这样我就可以测试我是否正确调用了动作,而不是制作一个包含视图数据的实际文件。

任何见解都会受到赞赏。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    如果你想在没有视图的情况下做某事,你不能返回一个加载视图的ActionResult(在你的例子中,一个名为“Test”的视图,因为你没有指定)。

    您可以创建一个 void 控制器(至少我认为 - 我从来没有这样做过) - 但为什么不创建一个简单的视图来打印您的消息:

    public ActionResult Test()
    {
        ViewData["Message"] = "HELLO THERE";
        return View("DebugView");
    }
    

    然后DebugView.cshtml就是:

    @ViewData["Message"]
    

    测试了上述内容并且可以正常工作。正如其他人指出的那样,您可以退回其他东西。

    【讨论】:

      【解决方案2】:

      你可以很容易地做到这一点......只需创建一个与操作同名的空视图,你就完成了

      public ActionResult Test()
          {
      
              ViewData["Message"] = "HELLO THERE";
              return view();
          }
      

      创建没有任何内容的测试视图

      【讨论】:

        【解决方案3】:

        按照惯例,您应该拥有一个从每个控制器操作返回的视图文件。如果您想使用调试视图,只需创建一个临时视图文件并将字符串传递给视图。您可以返回其他数据类型,例如 Json,只返回数据(减去视图),试试这个。

        public ActionResult SomeActionMethod() {
            return Content("hello world!");
        }
        

        虽然我们正在讨论这个主题,但如果您围绕控制器编写单元测试可能会更好。理想情况下,视图不应修改您的数据,而应仅具有基本视图逻辑并显示您的视图模型。单元测试可以让您查看控制器操作返回的内容,而不必创建调试视图或触摸与视图相关的任何内容。

        【讨论】:

          【解决方案4】:

          你可以通过mvc返回任何东西,而不仅仅是动作结果

              public string Test()
              {
                  return "Hello World!!!";
              }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-07-28
            • 1970-01-01
            • 1970-01-01
            • 2015-02-10
            • 1970-01-01
            • 2012-06-10
            • 2010-09-13
            • 2015-07-31
            相关资源
            最近更新 更多