问题标签 [actionfilterattribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1569 浏览

model-view-controller - ActionFilterAttribute 中的 ViewData - 对象引用未设置为对象的实例

我一直在尝试使用 ActionFilterAttribute 从数据库加载母版页内容(基于查询字符串中的“TargetCode”)。但是,我在将 ViewData 设置为从数据库返回的数据时遇到问题,代码如下:

{ HomeRepository hr = new HomeRepository();

}

除了最后一行 (result.ViewData["ThemeData"] = ThemeData;) 外,一切都按预期工作

当我调试代码时,它显示 ThemeData 确实有我从数据库返回的数据,但我无法将其设置为 result.ViewData["ThemeData"]。错误是“对象引用未设置为对象的实例”。在那条线上。

任何帮助表示赞赏。非常感谢。

0 投票
4 回答
8042 浏览

asp.net-mvc - ASP.NET MVC - ActionFilterAttribute 验证 POST 数据

实际上,我有一个应用程序正在使用 WebService 来检索一些客户信息。因此,我正在验证 ActionResult 中的登录信息,例如:

其中 Client.Validate() 是一种基于 POST 用户名和密码上提供的信息返回布尔值的方法

但是我改变了主意,我想在方法的开头使用那个不错的 ActionFilterAttributes ,这样它就会在 Client.validate() 返回 true 时呈现,就像 [Authorize] 一样,但使用我的自定义 web 服务,所以我会有类似的东西:

然后在 ValidateAsClient 我会有类似的东西:

所以我的问题是,我不知道如何使它工作,因为我不知道如何将 POSTED 信息传递给[ValidateAsClient(username=postedUsername,password=postedPassword)]以及,我怎么能ValidateAsClient 功能是否正常工作?

我希望这很容易理解提前谢谢

0 投票
2 回答
1761 浏览

asp.net-mvc - 可靠地检测 IActionFilter.OnActionExecuted 中的重定向

我有一个IActionFilter在 中做某事的东西OnActionExecuted,但是当控制器结果执行重定向时我不想执行此操作。

我最初的想法是检查的类型ActionResultRedirectResultor RedirectToRouteResult,但这并不可靠,因为任何类型的结果都可以执行重定向(实际上我有两个自定义的)。

是否有另一种方法可以检测到何时发生这种情况,或者因为在操作执行之前您不会知道重定向(这为时已晚,无法执行我想要的操作),所以这是不可能的?

也许只是检查ViewResult并且PartialViewResult会更可靠。

0 投票
2 回答
1253 浏览

asp.net-mvc - 刷新和压缩过滤器 (ASP.NET MVC)

我们有非常通用的代码,运行良好:

现在我正在尝试用它Response.Flush()来传递部分页面,以改善用户体验。在这种情况下,response.Filter每次写入操作修改时,很明显需要立即交付页面。如何让我的应用程序写入中间流,然后压缩它,然后推送到Response.Filter

0 投票
1 回答
3564 浏览

asp.net-mvc - 使用动作过滤器属性的 ASP.Net MVC 错误处理

我正在尝试按照 ScottGu 的博客使用动作过滤器属性来实现错误处理

我的代码如下:

我遇到了一个问题,我永远无法点击 CustomError 视图,因为我在抛出异常时收到了异常

OhDearACrash:用户代码未处理异常

NullRefCrash:用户代码未处理 NullReferenceException

因此,未处理的异常由默认 [HandleError] 拾取,该默认 [HandleError] 路由到处理错误的 View/Shared/Error.aspx。

如何处理未处理的异常?

0 投票
1 回答
1496 浏览

asp.net-mvc - 通过动作过滤器属性处理 ASP.Net MVC 自定义错误

我正在尝试通过动作过滤器属性实现自定义错误处理。

我的代码如下:

OhDearACrash 和 ThrowNotImplemented 都被 [HandleError] 拾取,它通过位于 Views/Shared 中的 Error.aspx 呈现错误消息。

以 OhDearACrash 为例:

渲染

NullRefCrash 由处理 ExceptionType = typeof(NullReferenceException) 的 [HandeError] 拾取。

当 CustomError 尝试使用

ViewData.Model 为 null 并引发异常

为了创建 CustomError.aspx,我复制了 Error.aspx 并粘贴到我新创建的 Views/Error 中,并重命名为 CustomView.aspx。

由于 Error.aspx 和 CustomError.aspx 本质上是相同的,这是怎么发生的?

编辑:

我创建了一个仅包含上述内容的测试项目,并且 CustomError.aspx 视图工作得非常好 - 无论如何要调试我现有的项目以找到问题?

0 投票
1 回答
4734 浏览

c# - 动作过滤器动作参数

我有一个ActionFilterAttribute我想通过它接受参数,但我不知道如何传递它们。

所以我的动作过滤器看起来像这样;

我像这样装饰我的动作;

现在我想添加一个参数,这样我就可以像这样调用过滤器;

有人知道怎么做吗?

0 投票
3 回答
4984 浏览

model-view-controller - ActionFilterAttribute: Where is the 'Cancel' property?

Whatever happened to the Cancel property on the ActionExecutingContext? How would one abort a RenderAction when using an ActionFilterAttribute or is there another way to skin this cat?

The code above continues to execute the Action it has been applied to despite exiting the OnActionExecuting operation?

--- Further To original post: Thanks for the answers below, however, I don't think I have made the context clear enough, I am trying to invalidate the following call:

When a user is not authenticated this action should return nothing, I could easily put an 'if' block on the view, however, I would like to keep the rule in the controller.

0 投票
1 回答
3511 浏览

c# - ActionFilterAttribute 的 Ninject 2 属性注入不起作用

我有一个方法属性,它期望 Ninject 2 注入几个属性,但是userSession现在jobRepository为空:

这是控制器中的方法:

我知道我的设置工作正常,因为如果我在控制器上使用构造函数注入,控制器的参数就会被注入。尽管需要使用属性注入,但这对属性没有多大帮助。我在这里错过了什么吗?

以下是 Global.asax.cs 的相关药水:

0 投票
1 回答
5621 浏览

asp.net - 停止继续 ASP.NET MVC ActionFilter

我在一个动作上有两个自定义 ActionFilter。

在第一个动作过滤器中,如果不满足条件(经典授权),我将执行重定向。在另一个条件下,如果不满足另一个条件(比如角色检查),我会执行重定向。

但是如果第一个不满足,我不想继续第二个 actionFilter。这个怎么做?