直接从控制器打印到Web?

时间:2011-08-18 10:12:55

标签: asp.net-mvc-2

我有这个控制器函数返回cpu stats:

        public ActionResult GetStats()
        {
            Random rand = new Random();
            ViewData["cpu_temp"] = rand.Next(0, 100) + "%";

            return View();
        }

并且有一种观点,它100%有效。不知道我是否可以缩短这个过程,只是做一些事情:

        public ActionResult GetStats()
        {
            Random rand = new Random();

            something.writeline(rand.Next(0, 100) + "%");
        }

这样我就可以创建控制器而不关心简单简单输出的视图:D

FIX ,在Jamie Dixon提示之后我提出了这个解决方案:

        public ActionResult GetStats()
        {
            Random rand = new Random();
            ViewData["cpu_temp"] = rand.Next(0, 100) + "%";

            return Json(ViewData, JsonRequestBehavior.AllowGet);
        }

按预期工作:D

2 个答案:

答案 0 :(得分:1)

这完全取决于您要查看数据的位置。

如果您想通过网页在网络浏览器中查看数据,那么您需要返回一个视图。

如果您只想查看数据,可以使用

将其输出到调试控制台
Debug.WriteLine(mystring);

或者,您可以将任何数量的格式发送到浏览器,用户可以下载这些格式(JSON,XML,文本文件),不需要查看。

这里的关键点是,如果您希望用户以他们可能出现的方式查看他们的浏览器中的信息,那么您将需要使用View。

<强>更新

要返回JSON对象,您只需return JSON(object)

return JSON(new {foo = "foo", bar = "bar"});

答案 1 :(得分:1)

这样做会更容易:

public ActionResult GetStats()
{
   Random rand = new Random();

   return Content(rand.Next(0, 100) + "%");
}