3

我有一个 ASP.NET MVC 3 项目,其中包含模型绑定到视图模型的 POST 操作

[HttpPost]
public virtual ActionResult Reply(ReplyViewModel viewModel)
{
    // ...
}

我有一个ActionFilter,我想查看那个视图模型,OnActionExecutedViewData.Model它是空的。我误解了什么ViewData.Model是什么?

public class CopyViewModelToTempDataAttribute : System.Web.Mvc.ActionFilterAttribute
{
    public override void OnActionExecuted(System.Web.Mvc.ActionExecutedContext filterContext)
    {
        // filterContext.Controller.ViewData.Model is null
    }
}
4

2 回答 2

1

返回视图时,您的控制器操作必须传递视图模型:

[HttpPost]
public virtual ActionResult Reply(ReplyViewModel viewModel)
{
    // ...
    return View(someViewModel);
}

现在您将能够在操作过滤器中获取返回的视图模型。

于 2011-12-18T12:33:16.617 回答
1

这可能是此问题的解决方案 1. 我假设您分配了 Model in Action

现在来过滤器

public override void OnActionExecuted(System.Web.Mvc.ActionExecutedContext filterContext)
    {
        if(filterContext.HttpContext.Request.HttpMethod == "POST")
        {
        // Get your model here.
        }
    }
于 2011-12-18T04:34:27.617 回答