gpt4 book ai didi

asp.net - MVC3 ActionName 属性,它的行为和效果

转载 作者:行者123 更新时间:2023-12-04 00:15:53 26 4
gpt4 key购买 nike

在阅读 mcv3 时,我遇到了一个名为 [ActionName] 的属性名称。 .它实际上为操作方法提供了一个新名称。我测试了一个让我思考的场景;内部是如何工作的。当我的 Controller 类中有以下两种操作方法时

[ActionName("Test")]
public ActionResult Index()
{
return View();
}
[ActionName("Index")]
public ActionResult Test()
{
return View();
}

我认为这会以某种无限循环结束,或者会给出一些模棱两可的异常。但是同样的工作正常,当我给这个 url http://mysite:1234/mycontroller 时调用第二种方法

是什么让 MVC 引擎选择第二种方法而不是第一种?

知道为什么会这样吗?

最佳答案

Phil Haack 有一个关于这个问题的帖子:How a method becomes an action

简而言之:ControllerActionInvoker 使用反射来查找与操作名称匹配的方法。

ActionNameAttribute 重新定义了方法的名称。

另请注意,您的 View 名称与 ActionName 匹配,而不是 MethodName:方法 Index 将搜索名称为“Test”的 View

关于asp.net - MVC3 ActionName 属性,它的行为和效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10100822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com