ASP.NET MVC:什么是Action方法?行动结果?它们有什么关系?

时间:2010-07-17 11:07:51

标签: asp.net-mvc action

我很遗憾地提出这样一个基本问题,但这对我来说很重要。为了更好地理解过滤器,我需要理解这个概念。虽然我现在已经在ASP.NET MVC上工作了几个月,现在正在进行很好的演示,但我比Action方法概念更熟悉动作结果。

什么是:

  1. 行动方法?
  2. 行动结果?
  3. 他们有什么关系?
  4. 我想说的就是这个

    public ViewResult ShowPerson(int id)
    {
      var friend = db.Persons.Where(p => P.PersonID == id).First(); 
      return View(friend);
    }
    

    这些概念如何应用于上述代码?

    感谢您的帮助。

2 个答案:

答案 0 :(得分:11)

在您的示例中,ShowPerson是操作。每个动作都需要返回一个动作结果(在你的情况下它返回一个视图)。因此,当调用控制器操作方法时,它会执行一些处理并决定哪个视图最适合表示模型。

您可能会使用许多不同的操作结果。它们都来自ActionResult

答案 1 :(得分:1)

@ Darin-dimitrov的回答非常重要。但我看到MSDN上给出的解释也非常有帮助。

  

操作方法通常与用户进行一对一映射   互动。用户交互的示例包括输入URL   进入浏览器,单击链接,然后提交表单。每个   这些用户交互会导致将请求发送到服务器。在   在每种情况下,请求的URL包括MVC的信息   框架用于调用操作方法。

     

当用户在浏览器中输入URL时,MVC应用程序会使用   在Global.asax文件中定义的路由规则来解析   URL并确定控制器的路径。控制器然后   确定处理请求的适当操作方法。通过   默认情况下,请求的URL被视为包含的子路径   控制器名称后跟操作名称。例如,如果是   用户输入网址http://contoso.com/MyWebSite/Products/Categories,   子路径是/ Products / Categories。默认路由规则处理   “Products”作为控制器的前缀名称,必须以   “Controller”(如ProductsController)。它将“类别”视为   行动的名称。因此,路由规则调​​用   Products控件的类别方法以便处理   请求。如果URL以/ Products / Detail / 5结尾,则为默认路由   规则将“详细信息”视为操作的名称和详细信息方法   调用Products控制器来处理请求。通过   默认情况下,URL中的值“5”将传递给Detail方法   作为参数。