在视图中,例如,在“_Layout.cshtml”如何知道控制器是否在ASP.net中有属性?
如何获取调用此视图的控制器/操作?
找到控制器/操作名称后,如何获取它具有的属性列表?或测试它是否有属性?
谢谢。
在视图中,例如,在“_Layout.cshtml”如何知道控制器是否在ASP.net中有属性?
如何获取调用此视图的控制器/操作?
找到控制器/操作名称后,如何获取它具有的属性列表?或测试它是否有属性?
谢谢。
@ViewContext.Controller
将为您提供返回此视图的控制器实例。一旦获得实例,就可以获得该类型,并且一旦获得了类型,即可获得该类型所装饰的属性。编写自定义HTML助手来完成这项任务可能是值得的:
public static class HtmlExtensions
{
public static bool IsDecoratedWithFoo(this HtmlHelper htmlHelper)
{
var controller = htmlHelper.ViewContext.Controller;
return controller
.GetType()
.GetCustomAttributes(typeof(FooAttribute), true)
.Any();
}
}
你的问题
第一部分回答了在这里:http://stackoverflow.com/questions/1083774/getting-the-name-of-the-在asp-net-mvc中的控制器和动作方法在视图中 –
你想要action \ controller属性吗?看到这个动作属性的答案:stackoverflow.com/a/8369591/601179 – gdoron