سلام بر مردان و زنان خدا
من می خوام یه کاری انجام بدم مبنی بر اینکه مثلا یه CustomAttribute نوشتم که پارامتر ورودی دریاف می کنه مثلا :
myCustomAttribute(id=5)
حالا نکته اینجاست که می خوام این Attribute را بالای اکشن هام اضافه کنم اما مقدار id را مقدار id ورودی آن اکشن دریافت کند مثلا:
[myCustomeAttribute] public void Add (int id) } {
خب دوستان من چطوری می تونم به اون id ورودی اکشن دسترسی داشته باشم و اونو به attribute پاس بدم؟!؟!؟!!؟
خدا صد در دنیا هزار در اخرت بهتون عطا بفرماید که بدجور گیرم و توی نت چیزی پیدا نکردم
بله
شما در Attribute ها به Context دسترسی دارید و میتونید پارامتر را ها دریافت کنید
ایمان چان میشه یه مثال واضح تر بیان کنی|؟!
ممنون میشم
شما وقتی از 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); } }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)