مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

پاس کردن آرگومان های ورودی اکشن به CustomAttribute

  • یکشنبه 24 تیر 1397
  • 12:17
تشکر میکنم

سلام بر مردان و زنان خدا

من می خوام یه کاری انجام بدم مبنی بر اینکه مثلا یه CustomAttribute  نوشتم که پارامتر ورودی دریاف می کنه مثلا :

myCustomAttribute(id=5)

حالا نکته اینجاست که می خوام این Attribute  را بالای اکشن هام اضافه کنم اما مقدار id  را مقدار id  ورودی آن اکشن دریافت کند مثلا:

[myCustomeAttribute]
public void Add (int id)
}
{

خب دوستان من چطوری می تونم به اون id  ورودی اکشن دسترسی داشته باشم و اونو به attribute  پاس بدم؟!؟!؟!!؟

خدا صد در دنیا هزار در اخرت بهتون عطا بفرماید که بدجور گیرم و توی نت چیزی پیدا نکردم

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 24 تیر 1397
  • 12:38

بله 

شما در Attribute ها به Context دسترسی دارید و میتونید پارامتر را ها دریافت کنید 

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • یکشنبه 24 تیر 1397
  • 13:45

ایمان چان میشه یه مثال واضح تر بیان کنی|؟!

ممنون میشم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 24 تیر 1397
  • 15:52

شما وقتی از Attribute ارث بری میکنید به HttpContext دسترسی دارید و به همین روال میتونید به Response دسترسی داشته باشید 

public class ApiAuthorizationFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        Foo model = (Foo)actionContext.ActionArguments["model"];
        string param1 = (string)actionContext.ActionArguments["param1"];
        int param2 = (int)actionContext.ActionArguments["param2"];

        if (model.Id != "1")
            throw new HttpResponseException(System.Net.HttpStatusCode.Forbidden);

        base.OnActionExecuting(actionContext);
    }
}

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)