簡體   English   中英

如何將參數傳遞給不同控制器中的 actionfilter

[英]How to pass parameters to actionfilter in different controllers

我已經在這里檢查了答案。 如何將參數傳遞給 ASP.NET MVC 2 中的自定義 ActionFilter? 我想根據傳入控制器的唯一 ID 檢查多個控制器中的條件。

這是 actionfilter 的代碼。

public class AnswerCompletedAttribute : System.Web.Http.Filters.ActionFilterAttribute, IActionFilter
{
    public string p { get; set; }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        throw new NotImplementedException();
    }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.ActionParameters.ContainsKey(p))
        {
            var id = filterContext.ActionParameters[p] as Guid?;
            if (Db.IsRespondentAnswerCompleted(id))
            {
                filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary
                    {
                    { "controller", "Error" },
                    { "action", "NotFound" }
                    });
            }
        }
    }
}

我在控制器中的代碼,

[AnswerCompleted(p = "uniqueId")]
    public ActionResult Index(Guid? uniqueId)
    {

        //do something
        return View();
    }

我應該如何更改它以使其正常工作?

我發現它是從錯誤的類繼承的,應該是system.web.mvc.actionfilterattribute而不是System.Web.Http.Filters.ActionFilterAttribute

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM