所以最近,我想出了一种动态构建导航栏菜单的方法,其中Controller(和其索引ActionMethod)将在每个页面顶部的水平栏中列出(通过Site.Master),但也基于关于用户分配的角色。列出的每个控制器也会列出(在垂直下拉列表中)可供用户使用的ActionMethods。如何将描述附加到控制器(ASP.net MVC)中的每个ActionMethod?
请参阅此处查看我写给的代码create an Extended Controller class for ASP.NET MVC解决了上述问题。
我意识到我也想为每个控制器自动创建一个默认索引页面,列出所有可用的ActionMethods和每个ActionMethod的简短1或2个句子描述,但正在思考如何将描述附加到ActionMethod。
我的假设是,我需要做3件事情:
(1)创建自己的属性,比如,描述和装饰各ActionMethod在每个控制器中,像这样:
[Authorize(Roles="Admin")]
public class SomeController : ExtController
{
[Description("This method adjusts all of your widgets making them better.")]
public ActionResult TweakWidgets()
{
return View();
}
}
(2)在我的基类(ExtController)中创建一个公共ActionResult索引()方法,该方法将由每个继承ExtController的类使用,以显示可供该用户使用的ActionMethods及其描述的列表。
(3)在视图/共享中创建一个Index.aspx视图,它将构建这样一个页面。
这是一个明智的做法吗?有一个更好的方法吗?
啊,谢谢你的指针。我讨厌重新发明轮子,并不确定是否已经有一个Description属性。 – Pretzel 2010-06-21 17:39:29
Intellisense并没有为我提供任何东西,但我没有引用System.ComponentModel,所以这是有道理的......谢谢! – Pretzel 2010-06-21 17:48:48