我很遗憾地提出这样一个基本问题,但这对我来说很重要。为了更好地理解过滤器,我需要理解这个概念。虽然我现在已经在ASP.NET MVC上工作了几个月,现在正在进行很好的演示,但我比Action方法概念更熟悉动作结果。
什么是:
我想说的就是这个
public ViewResult ShowPerson(int id)
{
var friend = db.Persons.Where(p => P.PersonID == id).First();
return View(friend);
}
这些概念如何应用于上述代码?
感谢您的帮助。
答案 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方法 作为参数。