MVC:试图了解ActionResult发送数据的位置

时间:2014-08-19 02:50:32

标签: asp.net-mvc

我一直在努力理解在线教程,我很难过。 有人可以告诉我发送“Hello”文本的位置吗?消息是否直接发送到浏览器而不是放在页面上?

public class GoHomeController:Controller

{
    public string Index()
    {
        return "Hello";
    }
}

1 个答案:

答案 0 :(得分:1)

这是怎么回事?您的控制器操作需要具有ActionResult的返回类型,此类的许多子类允许各种类型的响应,但是如果您愿意,您总是可以使用暴力影响。例如“

public ActionResult Index() 
{ 
   Response.Write("hello world");
   return null;
}

上面的代码直接写入Response流,在我的示例中,我返回null。这表明MVC系统不需要执行ActionResult,通常这是指定View的位置,View也将被读取,解析并写入Response流。

但是典型的控制器操作确实有返回值,例如,这里是我如何返回JSON,请记住View只是一个抽象,允许您控制写入Response流的内容。

public ActionResult Index() 
{ 

   return Json( new { Message="Hello world"});
}

然后有典型的ActionResult将输出定向到.cshtml文件:

public ActionResult Index() 
{ 
   return View();
}

这将使用绑定到此控制器命名空间的Response文件写入Index.cshtml流,或者我可以指定.cshtml的名称:

public ActionResult Index() 
{ 
   return View("HelloWorld");   //<-- looks for HelloWorld.cshtml
}