【发布时间】:2017-02-02 02:57:08
【问题描述】:
我已经在这里检查了答案。 How to pass parameters to a custom ActionFilter in ASP.NET MVC 2? 我想根据传入控制器的唯一 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();
}
我应该如何更改它以使其正常工作?
【问题讨论】:
-
请解释您遇到的错误?
-
@Arathy T N 没有错误,过滤器不起作用。它不会停止动作加载。
-
您尝试调试时发生了什么?
标签: c# asp.net-mvc asp.net-mvc-4 action-filter