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