问题标签 [action-filter]

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 投票
2 回答
6717 浏览

asp.net-mvc - 如何在 ActionFilter 中获取 actionName?

这是我的旧代码


0 投票
3 回答
11310 浏览

c# - ASP.NET MVC:如何创建一个动作过滤器来输出 JSON?

我使用 ASP.NET MVC 的第二天和我对 SO 代码的第一个请求(是的,走捷径)。

我正在寻找一种方法来创建一个过滤器,该过滤器拦截来自 Action 的当前输出,而是输出 JSON(我知道替代方法,但这是为了帮助我理解过滤器)。我想忽略与该操作相关的任何视图,只获取 ViewData["Output"],将其转换为 JSON 并将其发送到客户端。需要填写的空白:

TestController.cs:

JSONFilter.cs:

更新:社区回答导致JSON/POX 过滤器的更全面实施。

0 投票
1 回答
253 浏览

.net - 在 ASP.NET MVC 中,如何定义检查/应用我的自定义属性的顺序?

我目前正在研究使用从 ActionFilterAttribute 派生的自定义属性的可能性。我想用几个属性完成几件事。问题是我想确保其中一个属性首先发挥作用,而不是以任何随机顺序。

例子:

属性是否按照它们在方法装饰中提到的顺序应用?

如果没有,有没有办法为一组 [自定义] 属性定义特定序列?

0 投票
2 回答
2495 浏览

.net - ASP.NET MVC、ActionFilters、静态类和传递数据

我想听听您的意见,也许对以下情况有更好的建议:

我已经定义了一个自定义的 ActionFilter 来完成一些工作并产生一些价值。我想在控制器操作和模型中使用该值。

现在,我可以使用 TempData 将该值从 ActionFilter 传递给任何控制器操作方法,然后将该值分配给传递给返回视图的所有模型。

我确信它会起作用,但是这个 TempData 将在会话中出现,在没有人真正需要它的地方和时间。该值应该在单个请求期间仅在代码中使用,之后它有效地无效。

我提出了两个选择:

  1. 在 ActionFilter 中,我在 OnActioExecuting() 的 TempData 中设置了该值,并在 OnActionExecuted() 中将其删除。我是否正确理解,在调用 OnActionExecuted 时,控制器操作已完成,响应已生成,并且此 TempData 内容尚未进入会话?

  2. 在我的任何自定义静态类(逻辑)中,我只为这个值定义一个公共属性,并在需要时使用它。这个静态字段在 OnActionExecuting() 和实际执行控制器方法之间不会丢失吗?在服务器上的请求处理期间是否有可能丢失此值的任何其他问题?

我还没有考虑过其他/更好的选择吗?

0 投票
3 回答
983 浏览

asp.net-mvc - 哪个重定向具有优先权 - 控制器操作中的重定向还是 ActionFilter 的 OnActionExecuted 中的重定向?

看来我又要干点奇怪的事了……

情况:

那么,将发生哪个重定向?控制器动作中的一个,ActionFilter 中的一个,或者两者兼而有之?

0 投票
2 回答
111 浏览

c# - 我的 asp.net-mvc 站点的 TranslateAttribute

在我当前的项目中,我有一个自定义 ViewData,它具有(除其他外)以下属性:

我所有的网址都是这样的:

http://someUrl.com/ {siteLanguage}/{restOfUrlIncludingcontrollersAndACtions}

我想创建一个捕获每个请求的 ActionAttribute,检查 siteLanguage 值是什么,并在 CustomViewData 上设置 Language 值。我当前的(非工作)代码是这样的:

第一个问题是 viewdata 永远不是 customviewdata。为什么不?

0 投票
2 回答
11500 浏览

asp.net-mvc - 在 BaseController 的 OnActionExecuting 之前调用 FilterAttribute 的 OnActionExecuting

我有一个通过覆盖BaseController将一些数据放入集合中的.ViewDataOnActionExecuting

现在我有一个ChildController不需要该视图数据的操作。

为此,我创建了一个DontPopulateViewDataActionFilterAttribute,它在 上设置了一个布尔值,以BaseController防止BaseController填充 viewdata。

问题:ActionFiltersOnActionExecuting方法是在一个 in 之后BaseController而不是之前调用的。

ActionFilters 是否总是OnActionExecuting在基本控制器中被覆盖之前被调用,有没有办法解决这个问题?

0 投票
6 回答
8009 浏览

asp.net-mvc - 有哪些方法可以在 ASP.NET MVC 中停止表单的多次回发?

一个常见的 Web 问题是用户多次单击表单的提交按钮,因此服务器多次处理该表单。当用户点击后退按钮提交表单并再次处理时,也会发生这种情况。

在 ASP.NET MVC 中阻止这种情况发生的最佳方法是什么?

我看到的可能性是:

  1. 提交后禁用按钮 - 这会绕过多次点击而不是导航
  2. 立即重定向接收操作 - 浏览器似乎将这些重定向排除在历史记录之外
  3. 在会话和表单上放置一个唯一令牌 - 如果它们匹配则处理表单 - 如果不清除表单以重新提交

还有更多吗?

这些是否有一些特定的实现?

我可以看到第三个选项被实现为带有 HtmlHelper 扩展的 ActionFilter,其方式与防伪工具类似。

期待收到您的 MVC'ers 的来信。

0 投票
1 回答
15404 浏览

asp.net-mvc - 如何从 ActionFilter 访问 ModelState?

我正在构建一个ActionFilter为简单的垃圾邮件块重用一些代码 - 基本上我所做的是我有一个Html Helper呈现输入文本框和隐藏输入的方法,并且在 ActionFilter 我检查这两个值是否相同. 如果没有,我想利用其余的验证逻辑并将 a 添加ModelStateErrorModelState,但我该怎么做呢?如何ModelStateError从 whithin 中添加一个ActionFilter

更新:这是我正在尝试的代码。当我测试具有此属性的控制器操作时,即使我没有传递任何所需的表单值,它ModelState.IsValid仍然会返回:true

这是ActionMethod

我刚刚注意到,如果我在OnActionExecuting方法内设置断点并点击“调试测试”,则永远不会命中断点。为什么?

0 投票
3 回答
4493 浏览

asp.net-mvc - 为什么我的所有 ActionFilter 都不运行?

我今天早些时候问了一个ActionFilters关于ASP.Net MVC 的问题。原来我的问题真的是我ActionFilter什至没有运行。除其他外,我阅读了这篇文章,但我找不到他做的任何我不做的事情。

这是我的代码:

filter 方法中的断点在我调试时永远不会被命中,并且在呈现视图时会TempData["filter"]保存一个值。null

为什么这不起作用?