- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在构建以下过滤器:
public class TestflowFilter : FilterAttribute, IActionFilter
{
public void OnActionExecuted(ActionExecutedContext filterContext)
{
var profileId = int.Parse(ClaimsPrincipal.Current.GetClaimValue("UserId"));
var appId = int.Parse(filterContext.RouteData.Values["id"].ToString());
if (profileId != 0 && appId != 0)
{
if (CheckIfValid(profileId, appId))
{
// redirect
filterContext.Result = // url to go to
}
}
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
}
}
我实际上只需要 OnActionExecuted
,但由于 IActionFilter
是一个接口(interface),我必须同时实现它们。如果我不需要任何事情发生,是否可以将 OnActionExecuting
留空,或者我是否需要调用 MVC 始终运行的基本版本?
同样在 OnActionExecuted
方法中,如果 CheckIfValid
为 true
,我会重定向用户,但如果不是,我什么都不做。这样可以吗,还是我需要在 filterContext
上设置一些属性。
最佳答案
I actually only need OnActionExecuted, but since IActionFilter is an interface I have to implement them both. Is it ok to leave OnActionExecuting blank if I don't need anything to happen, or do I need to call a base version that MVC always runs?
在这种情况下,将方法主体留空是完全可以接受的。看起来不错!
Also In the OnActionExecuted method if the CheckIfValid is true I redirect the user, but if not I don't do anything, is that ok or do I need to set some property on the filterContext instead.
您的过滤器没问题。 MVC 确实提供了一个名为 ActionFilterAttribute
的不同抽象基类,它实现了这些接口(interface),供您根据需要覆盖。你有一个很好的概述can read about here .如果您从该类派生,您的过滤器属性代码可以简化一点:
public class TestflowFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var profileId = int.Parse(ClaimsPrincipal.Current.GetClaimValue("UserId"));
var appId = int.Parse(filterContext.RouteData.Values["id"].ToString());
if (profileId != 0 && appId != 0)
{
if (CheckIfValid(profileId, appId))
{
// redirect
filterContext.Result = // url to go to
}
}
}
}
关于c# - 实现 IActionFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36779196/
我正在构建以下过滤器: public class TestflowFilter : FilterAttribute, IActionFilter { public void OnActionE
请解释 IActionFilter 和 IResultFilter 之间的区别。我知道 OnActionExecuting 发生在 action 方法执行之前, OnActionExecuted 发生
我只是想知道 IActionFilter 和 IAuthorizationFilter 之间是否有任何区别? 我假设我们可以在可能具有 IAuthorizationFilter 的 IActionFi
我有一个 IActionFilter在 OnActionExecuted 中做了一些事情,但是我不想在 Controller 结果执行重定向时执行此操作。 我最初的想法是检查 ActionResult
在 ASP.NET Web API 项目中,我有一个操作过滤器,它检查模型状态错误并返回 Bad Request 状态代码(如果有)。它看起来像这样: public class ValidationF
我在 .Net Web API 上有一个应用程序。在执行每个操作后,我想查看结果并更改其中的某些内容。 说我的 API controllerAction 看起来像 public Car Get() {
我正在向 Controller 发送 AES 加密请求正文,以下是一个示例: (using crypto-js) {body: "U2FsdGVk186Jj7LySqT966qTdpQZwiR+wR0
我在 ASP.NET core 2.0 中有过滤器属性,请参阅下面的代码片段。这里的问题是我总是得到状态代码是 200。 即使实际状态码是 500,我也会得到 200。如何获取实际状态码? publi
我是一名优秀的程序员,十分优秀!