我有一个ASP.NET MVC 2应用程序,我在其中创建自定义操作筛选器.此过滤器位于应用程序中的控制器上,并从数据库验证该功能当前是否可用.
Public Overrides Sub OnActionExecuting(ByVal filterContext As System.Web.Mvc.ActionExecutingContext)
Try
' Check controller name against database.
Dim controllerName = filterContext.Controller.GetType().Name
controllerName = controllerName.Remove(controllerName.Length - 10)
' Look up availability.
Dim available As Boolean = _coreService.GetControllerAvailability(controllerName)
If Not available Then
' Redirect to unavailable notice.
filterContext.Result = New RedirectResult("/Home/Unavailable/")
End If
Catch ex As Exception
_eventLogger.LogWarning(ex, EventLogEntryType.Error)
Throw
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
我的问题是,根据已请求的操作,我需要将用户重定向到返回视图,部分视图或JSON的操作.
鉴于ActionExecutingContext,我可以找出最初请求的操作的返回类型是什么?
编辑:
好吧,我越来越近但又有另一个问题.
Public Overrides Sub OnActionExecuting(ByVal filterContext As System.Web.Mvc.ActionExecutingContext)
Try
' Check controller name against database. …Run Code Online (Sandbox Code Playgroud) 我们有一个巨大的ASP.NET MVC 3应用程序.我们需要计算我们在课程中有多少公共方法currentClass is System.Web.Mvc.Controller.
任何符合此条件的类都将具有"AwesomeProduct.Web"的基本命名空间,但除了这些类可能属于哪个命名空间或者有多少深度级别之外,无法保证.
想出这个的最佳方法是什么?