ASP.NET MVC 3中是否有ActionNameAttribute用于类类型声明?

时间:2011-06-26 20:43:22

标签: c# asp.net asp.net-mvc-3 routing

无法想象还没有问过这个问题......虽然,我找不到它。

所以这就是:我在ASP.NET MVC 3中的动作方法上使用了ActionNameAttribute。像这样:

[ActionName("confirm")]
[HttpGet]
public ActionResult Confirm(string stuffTitle)
{
   ActionResult resultView = CreateSomeStuff(stuffTitle);
   return resultView;
}

但是,如何才能为课程完成同样的工作?像这样:

[ActionName("personal")]
public class AccountController : Controller

使用ActionNameAttribute只能在方法声明中使用{{3}}。但我想它应该在类类型声明上以某种方式可行。也许我还没有听说过另一个属性?其他一些解决方法?

有人有想法吗?在此先感谢!!

2 个答案:

答案 0 :(得分:6)

我真的很难理解你追求的是什么。您想更改控制器的名称或其他内容吗?如果是这样,请使用路线:

routes.MapRoute(
    "FooRoute",
    "foo/{action}/{action}/{id}",
    new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);

现在,对foo/someaction的所有请求都将路由到Account控制器的相应操作。

答案 1 :(得分:0)

MVC控制器包含可以映射到Actions的方法。正如达林所说,它在课堂上的目的是什么?要说这个类有一个'列表'动作,就没有用了。你不得不说出哪种方法,不是吗?

我在Phil Haack的博客http://haacked.com/archive/2008/08/29/how-a-method-becomes-an-action.aspx上发现了这篇文章。如果您已经阅读过,我会提前道歉。我认为他所说的和一些最终的讨论可能对你有所帮助。