0

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

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

我查看了控制器的可覆盖方法,但没有发现任何明显的吸引我的眼球。有谁知道这样做的方法?

谢谢你的建议!

纳赛尔

4

2 回答 2

0

如果我正确理解你需要这样的东西。

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

    }
}

在视图中,您将找到属于当前控制器的 view.ViewData.Model,您可以使用此映射数据做所有您想做的事情。让我知道我是否正确:)

于 2009-04-03T12:49:22.053 回答
0

您需要的是自定义模型绑定器。您可以从默认的 ModelBinder 类继承并提供您想要的逻辑。

例如,如果你有这个:

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

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

于 2009-04-03T12:56:22.783 回答