3

モデルがビューモデルにバインドする POST アクションを含む ASP.NET MVC 3 プロジェクトがあります。

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

があり、ActionFilterそのビューモデルを見たいのですOnActionExecutedが、ViewData.Modelnull です。私は何を誤解してい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 に答える