Asp.NET MVC ModelBinder,获取Action方法

2024-01-07

我有一个自定义 ModelBinder,我想获得该操作。因为我想使用反射来获取操作的属性,所以操作名称是不够的。

我的行动方法:

[MyAttribute]
public ActionResult Index([ModelBinder(typeof(MyModelBinder))] MyModel model)
{
}

这里是一个典型的 ModelBinder

public class MyModelBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    {
        // here i would like to get the action method and his "MyAttribute"
    }
}

有什么建议,其他解决方案吗?

提前谢谢了


不,您无法 100% 确定从模型绑定器获取当前操作。模型绑定器不耦合到操作,而是绑定到模型。例如,您可以调用

TryUpdateMode(model)

在选择操作之前的过滤器中。另请注意,操作方法甚至可能不是 CLR 方法(请参阅http://haacked.com/archive/2009/02/17/aspnetmvc-ironruby-with-filters.aspx http://haacked.com/archive/2009/02/17/aspnetmvc-ironruby-with-filters.aspx)可以反映出来。

我认为真正的问题是,你到底想实现什么目标,这是正确的方法吗?如果您希望将来自操作的信息传递到模型绑定器(请注意如果信息不存在,您的模型绑定器应正常降级的建议),您应该使用操作过滤器将信息放入 HttpContext.Items (或类似的地方)然后让你的活页夹取回它。

操作过滤器的 OnActionExecuting 方法接收具有 ActionDescriptor 的 ActionExecutingContext。您可以对此调用 GetCustomAttributes。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.NET MVC ModelBinder,获取Action方法 的相关文章

随机推荐

  • 为什么嵌入 iframe 的 Facebook 应用程序中的 XFBML 标记不显示任何内容?

    我一直在尝试让这个应用程序在 Facebook 上运行 但是 应用程序中似乎没有任何内容呈现 除了 Hi this is some sample text A box stroked in red I am My photo and a d
  • SQL:插入新记录或仅替换某些字段的查询

    我的数据库是 SQLite 但我确信问题通常适用于 SQL 比如说 我有一个表 students 其中包含 id 主键 name selected 列 我有时需要从外部源更新所述表 但我只收到一个包含 id 和名称的表 当每行发生所述更新时
  • 如何为log4jdbc配置log4j2.xml?

    有谁知道如何配置 log4j2 xml 文件以使用 log4jdbc 我已经搜索了几个小时 但似乎找不到任何东西 log4jdbc依赖SLF4J http www slf4j org 迄今为止 SLF4J 和 Log4j 2 之间还没有合适
  • 是否需要同时关闭 NetworkStream 和 TcpClient,还是只关闭 TcpClient?

    我正在阅读有关 TcpClient Close 的文档 http msdn microsoft com en us library system net sockets tcpclient close 28v VS 100 29 aspx并
  • lit-html 的动态标签不可能吗?

    谁能告诉我为什么我不能在 list html 中使用变量html method const h1 h1 return html lt h1 class a heading classes gt
  • 使用 html 按钮按键盘上的转义键

    HTML 按钮 按下时模拟按下 ESC 键盘按键 因此 单击按钮与用户按键盘上的 ESC 键具有相同的效果 如果以任何方式肯定不可能 请告诉我 什么方法都可以 编辑 我不想按 ESC 键来触发某些东西 我想要相反的东西 触发 ESC 键 试
  • Python - 以非线性方式运行循环

    所以 我正在寻找一种以 for 循环方式循环遍历项目列表的方法 但我希望循环以 随机 方式迭代 即我不希望循环进行 0 1 2 3 m 1 n 我希望它以某种随机顺序选择它 并且仍然遍历所有项目的循环 这是我当前的循环代码 for sing
  • 验证特定电子邮件特定域设计 3 ruby​​ on Rails 4

    我之前发布了一个关于如何使用验证仅允许使用以 grenoble em com 结尾的电子邮件地址的访问者能够在我的网站上注册的问题 我正在使用 devise 3 和 Rails 4 我对它相当陌生 希望得到任何答案 这是我的用户模型 cla
  • Putty 有时喜欢在我的命令行中打印自己

    所以 有时当我通过连接到linux服务器的putty用C语言编程时 在执行我的C文件进行测试后 命令行会重复填写 PuTTY 一词30到40次 有时它会在我的程序中多次显示该单词 还有其他人有类似的问题吗 如果与此有关的话 我也会进行文件
  • 如何安全地设置GitLab环境变量?

    我不想将敏感凭证 如 API 密钥 密码等 放入我的分支中 为此 GitLab 和其他 CI CD 服务 能够设置环境变量 它们将在部署过程中注入到脚本中 我知道 GitLab 设置它们的两种方法 Via UI Project Settin
  • 摆动时平滑的圆角

    我想为我的摆动应用程序制作平滑的圆角 但我无法获得我想要的结果 这是截图 1 setShape 对于 JFrame 2 压倒性的paintComponent JPanel 的方法而不是使用setShape 3 setBackground n
  • 我们可以在 xpath 值中使用正则表达式吗?

    我们可以在 xpath 值中使用正则表达式吗 我正在使用 xpath 值来识别网络上的自动化元素 我有以下 xpath 值 xpath id ngdialog4 div 2 div 2 table tbody tr td 1 input 但
  • 将 Observables 与反馈合并,将 Observable 与其自身合并

    我需要创建 Observable 它将从不同的来源 其他 Observables 收集信息 每个来源都会对事件值产生影响 但该值仍然是基于先前的值 一种状态机 构建的 我们有带有 int 值和操作代码的消息 class Message In
  • 如何在 Typescript 中将接口转换为映射类型

    背景 In the 打字稿文档 https www typescriptlang org docs handbook advanced types html mapped types对于映射类型 给出以下示例 type Proxy
  • 为嵌入式系统中的平台总线编写设备驱动程序?

    我已经浏览了 Linux 内核源代码中的一些驱动程序实现 可以看到这些是平台驱动程序 drivers net ethernet smsc smsc911x c static struct platform driver smc911x dr
  • 没有名为 sympy 的模块

    你好 我正在 Edx 课程中使用 python 学习线性代数 http nbviewer ipython org github ULAFF notebooks tree may 14 2014 http nbviewer ipython o
  • 使用自定义光标 WinForms

    有没有办法在winforms中使用自定义光标 似乎没有选择 但是当我尝试手动添加游标作为资源 然后从代码中调用它时 它说它无法从类型 byte 转换为游标 在 C 中向光标添加自定义图标 将图标文件添加到项目资源 例如 Processing
  • 如何将字典作为函数的参数传递以及如何在函数中访问它们

    我尝试这样做 def func dict if dict a dict b dict c dict a return dict num a 1 b 2 c 2 print func num 但它给出了类型错误 Func 遇到了意外的争论 使
  • 在vue 3中观察父组件的子属性

    我想知道如何使用组合 api 观察 Vue 3 中父组件的子属性 我正在使用实验脚本设置 https github com vuejs rfcs blob script setup 2 active rfcs 0000 script set
  • Asp.NET MVC ModelBinder,获取Action方法

    我有一个自定义 ModelBinder 我想获得该操作 因为我想使用反射来获取操作的属性 所以操作名称是不够的 我的行动方法 MyAttribute public ActionResult Index ModelBinder typeof