سؤال

انا لدي ActionFilterAttribute الذي أريد أن أقبل المعلمات من خلال ولكن لا يمكنني معرفة نقلها عبرها.

لذلك يبدو مرشح الإجراء الخاص بي مثل هذا؛

public class PreventAction : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        filterContext.Result = new RedirectResult("Home/Index");
    }
}

وأنا تزيين عملي مثل ذلك؛

[PreventAction]
public ActionResult Ideas()
{
  return View();
}

الآن أريد إضافة معلمة حتى أتمكن من استدعاء المرشح مثل هذا؛

[PreventAction(myParam1 = "1", myParam2 = "2")]
public ActionResult Ideas()
{
  return View();
}

أي شخص يعرف كيفية القيام بذلك؟

هل كانت مفيدة؟

المحلول

فقط اضف MyParam1 و MyParam2 كخصائص الخاص بك PreventAction صف دراسي. إذا كنت بحاجة إلى المعلمات لتكون هناك (بدلا من ذلك اختياري)، فأضفها كوسائط إلى منشئ PreventAction في حين أن.

هنا برنامج تعليمي سريع فئة سمة بسيطة من MSDN.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top