Asp.net mvc MVC控制器的截获动作方法

Asp.net mvc MVC控制器的截获动作方法,asp.net-mvc,modelbinders,Asp.net Mvc,Modelbinders,我使用一个O/R映射器,它可以以一种通用的方式从数据库中重新加载对象。我希望能够在创建映射对象之后立即拦截请求,以便重新加载它们 ActionFilters当然存在,但问题是ActionFilters(或我看到的示例)可以处理表单提供的数据,而不是在创建对象之后 我查看了控制器的可重写方法,但没有发现任何明显的吸引我的地方。有人知道这样做的方法吗 谢谢你的建议 纳赛尔如果我没记错的话,你需要这样的东西 public class Navigate : ActionFilterAttribute,

我使用一个O/R映射器,它可以以一种通用的方式从数据库中重新加载对象。我希望能够在创建映射对象之后立即拦截请求,以便重新加载它们

ActionFilters当然存在,但问题是ActionFilters(或我看到的示例)可以处理表单提供的数据,而不是在创建对象之后

我查看了控制器的可重写方法,但没有发现任何明显的吸引我的地方。有人知道这样做的方法吗

谢谢你的建议


纳赛尔

如果我没记错的话,你需要这样的东西

public class Navigate : ActionFilterAttribute, IActionFilter
{
    void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
    {
        ViewResult view = filterContext.Result as ViewResult;

    }
}
在视图中,您将找到属于当前控制器的view.ViewData.Model,您可以使用该映射数据执行所有操作。
如果我是对的,请告诉我:)

您需要的是自定义模型活页夹。您可以从默认的ModelBinder类继承并提供所需的逻辑

例如,如果您有:

public ActionResult Save([Bind(typeof(CustomModelBinder))] Customer customer)
{
   /* ... */
}

模型绑定器将为您创建对象,但您可以选择先从数据库中获取对象(对于现有记录)。

!谢谢你的回复。你在行动后回答并处理结果。实际上,我感兴趣的是在动作被击中之前获得映射对象。你好,亲爱的本!谢谢你的回复!我找到了我使用的O/R映射器附带的modelbinder的代码,所以我现在必须尝试在modelbinder中重新加载!谢谢你的回复!纳赛尔