نمایش نتایج 1 تا 21 از 21

نام تاپیک: Url.Action در Application_Start

  1. #1

    Url.Action در Application_Start

    سلام.
    من تو Application_Start یه تایمر گذاشتم. داخلش میخوام از Url.Action استفاده کنم که متاسفانه نمیشه.
    کسی می تونه کمک کنه؟

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: Url.Action در Application_Start

    سلام

    اگر فقط به مسیر یک اکشن در یک کنترلر نیاز دارید می توانید از این کد استفاده کنید:
    UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
    string url = u.Action("About", "Home", null);

    اما اگر نیاز دارید یک تگ لینک کامل بسازید کد شما اینگونه خواهد بود:
    string link = HtmlHelper.GenerateLink(this.ControllerContext.Req  uestContext, System.Web.Routing.RouteTable.Routes, "My link", "Root", "About", "Home", null, null);

  3. #3

    نقل قول: Url.Action در Application_Start

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    سلام

    اگر فقط به مسیر یک اکشن در یک کنترلر نیاز دارید می توانید از این کد استفاده کنید:
    UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
    string url = u.Action("About", "Home", null);

    اما اگر نیاز دارید یک تگ لینک کامل بسازید کد شما اینگونه خواهد بود:
    string link =  HtmlHelper.GenerateLink(this.ControllerContext.Req  uestContext,  System.Web.Routing.RouteTable.Routes, "My link", "Root", "About",  "Home", null, null);
    ممنون بابت وقتی که گذاشتین

    در هر دو کد مشکل سر ControllerContext.RequestContext هست. خطای زیر رو میده:

    'MvcApplication' does not contain a definition for 'ControllerContext' and no extension method 'ControllerContext' accepting a first argument of type 'MvcApplication' could be found (are you missing a using directive or an assembly reference?)


    وقتی هم this رو از this.ControllerContext.RequestContext برمیدارم خطای زیر رو میده:

    An object reference is required for the non-static field, method, or property 'ControllerContext.RequestContext'

  4. #4
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: Url.Action در Application_Start

    با عرض پوزش. من دقت نکرده بودم جایی که میخواهید متد را فرخوانی کنید یک کنترلر نیست.

    برای اینکه متدی برای حل مسئله تان داشته باشید که همه جا قابل فرخوانی باشد یک کلاس برایتان ساختم بنام Utils:
    using System.Web;
    using System.Web.Mvc;

    namespace WebApplication3
    {
    public class Utils
    {
    public static string GetActionUrl(string action, string controller, object idParam,bool generateFullUrl = false)
    {
    var request = HttpContext.Current.Request;
    string url = new UrlHelper(request.RequestContext).Action(action, controller,new {id = idParam });
    if (generateFullUrl)
    {
    url = $"{request.Url.Scheme}://{request.Url.Authority}{url}";
    }
    return url;
    }
    }
    }

    نحوه فرخوانی به صورت عادی:
    string url = Utils.GetActionUrl("Contact", "Home", null);

    و اگر می خواهید در آدرسی که این متد باز می گرداند پروتکل (https یا http) و نیز آدرس سایت باشد متد فوق را به این صورت فراخوانی کنید:
    string url = Utils.GetActionUrl("Contact", "Home", null,true);

  5. #5

    نقل قول: Url.Action در Application_Start

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    با عرض پوزش. من دقت نکرده بودم جایی که میخواهید متد را فرخوانی کنید یک کنترلر نیست.

    برای اینکه متدی برای حل مسئله تان داشته باشید که همه جا قابل فرخوانی باشد یک کلاس برایتان ساختم بنام Utils:
    using System.Web;
    using System.Web.Mvc;

    namespace WebApplication3
    {
    public class Utils
    {
    public static string GetActionUrl(string action, string controller, object idParam,bool generateFullUrl = false)
    {
    var request = HttpContext.Current.Request;
    string url = new UrlHelper(request.RequestContext).Action(action, controller,new {id = idParam });
    if (generateFullUrl)
    {
    url = $"{request.Url.Scheme}://{request.Url.Authority}{url}";
    }
    return url;
    }
    }
    }

    نحوه فرخوانی به صورت عادی:
    string url = Utils.GetActionUrl("Contact", "Home", null);

    و اگر می خواهید در آدرسی که این متد باز می گرداند پروتکل (https یا http) و نیز آدرس سایت باشد متد فوق را به این صورت فراخوانی کنید:
    string url = Utils.GetActionUrl("Contact", "Home", null,true);
    سپاس بابت وقتی که گذاشتین...

    کد زیر null بر می گردونه:
     HttpContext.Current.Request
    آخرین ویرایش به وسیله resident : چهارشنبه 05 دی 1397 در 17:18 عصر

  6. #6

    نقل قول: Url.Action در Application_Start

    تشکر بابت انجمن خوبتون

  7. #7
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: Url.Action در Application_Start

    کد زیر null بر می گردونه
    کجا فراخوانی اش کردید که null برگرداند؟
    در پروژه های وب، معمولا چون برنامه به ازای Request های دریافتی اجرا میشه عملا هیچ وقت نباید اون HttpContext.Current.Request باشه.

  8. #8

    نقل قول: Url.Action در Application_Start

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    کجا فراخوانی اش کردید که null برگرداند؟
    در پروژه های وب، معمولا چون برنامه به ازای Request های دریافتی اجرا میشه عملا هیچ وقت نباید اون HttpContext.Current.Request باشه.

    protected void Application_Start()
    {

    timer = new System.Timers.Timer();
    timer.Enabled = true;
    timer.Interval = 60000;
    timer.Start();
    timer.Elapsed += HandleTimerElapsed;

    }

    public void HandleTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
    if(...){
    // create Link using url.action or ...
    }
    }





    در HandleTimerElapsed میخوام از @Url.Action یا کد مشابهی استفاده کنم که url ام رو بسازم.

  9. #9
    کاربر دائمی آواتار میلاد علوی
    تاریخ عضویت
    دی 1384
    محل زندگی
    پشت کامپیوتر
    پست
    201

    نقل قول: Url.Action در Application_Start

    ای کاش به این تاپیک منم جواب می دادید
    https://barnamenevis.org/showthread.p...8C%DA%AF%D8%B1

  10. #10
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: Url.Action در Application_Start

    اولا رویداد Application_Start زمانی اجرا می شود که برنامه تازه می خواهد شروع به کار کند و بالطبع در لحظه شروع هنوز درخواستی به سوی برنامه ارسال نشده است.
    ثانیا، Timer معمولا در یک Thread جدا از ASP.NET Worker Process اجرا می شود و از آنجاییکه این ترد بخشی از Http Pipeline محسوب نمی شود طبیعی است که Request/Response دسترسی نداشته باشد.

    شما می خواهید دقیقا چکار کنید؟ هر 60 ثانیه یک بار یک لینک در کد ایجاد کنید؟

  11. #11

    نقل قول: Url.Action در Application_Start

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    اولا رویداد Application_Start زمانی اجرا می شود که برنامه تازه می خواهد شروع به کار کند و بالطبع در لحظه شروع هنوز درخواستی به سوی برنامه ارسال نشده است.
    ثانیا، Timer معمولا در یک Thread جدا از ASP.NET Worker Process اجرا می شود و از آنجاییکه این ترد بخشی از Http Pipeline محسوب نمی شود طبیعی است که Request/Response دسترسی نداشته باشد.

    شما می خواهید دقیقا چکار کنید؟ هر 60 ثانیه یک بار یک لینک در کد ایجاد کنید؟
    ممنون بابت وقتی که گذاشتین و پاسخ دادین.
    داخل برنامه ام، reminder دارم. کاربرها میتونن مشخص کنن که برنامه سر تاریخ و ساعت مشخصی، بهشون notification یا اس ام اس بده برای یادآوری.
    هر 1 دقیقه یکبار چک می کنم اگر کاربری تو اون تاریخ و ساعت ، reminder ست کرده بود sms یا notification ارسال بشه.
    وقتی notification ارسال میشه، میخوام لینک page مورد نظر رو هم ارسال کنم که با کلیک بر روی notification، صفحه مورد نظر نمایش داده بشه

  12. #12
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: Url.Action در Application_Start

    این کار رو به راحتی با Hangfire می توانید انجام دهید. برای ساختن لینک هم اگر به آبجکت Request دسترسی نداشتید لزومی ندارد از کدهایی که بالاتر گذاشتم استفاده کنید، به راحتی آنها را به شکل یک استرینگ در کدتان قرار دهید.

  13. #13

    نقل قول: Url.Action در Application_Start

    واقعا ممنونم من بیشتر وقتایی که سوالی دارم یا گیر میکنم توی این انجمن میتونم جوا پیدا کنم یا جواب بگیرم

  14. #14

    نقل قول: Url.Action در Application_Start

    ممنون لطف کردین موفق باشید

  15. #15

    نقل قول: Url.Action در Application_Start

    منم همینجور خیلی راضیم از این انجمن

  16. #16

    نقل قول: Url.Action در Application_Start

    خیلی ممنون از پاسخگوییتون

  17. #17

    نقل قول: Url.Action در Application_Start

    متشکرم ازتون بسیار انجمن خوب و پرکاربردی دارید

  18. #18

    نقل قول: Url.Action در Application_Start

    ممنون از پاسخگوییتون منم مشکل داشتم برطرف شد

  19. #19

    نقل قول: Url.Action در Application_Start

    خیلی ممنون از پاسخگوییتون پایدار و موفق باشید

  20. #20
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: Url.Action در Application_Start

    این دوست عزیز هر سری یک یوزر ایجاد می کنه و میاد اینجا یه نظر بی ربط میده تا به وب سایتی که توی پروفایلش ثبت کرده بک لینک بده

  21. #21
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: Url.Action در Application_Start

    نقل قول نوشته شده توسط armani1 مشاهده تاپیک
    خیلی ممنون از پاسخگوییتون پایدار و موفق باشید
    این دوست عزیز هر سری یک یوزر ایجاد می کنه و میاد اینجا یه نظر بی ربط میده تا به وب سایتی که توی پروفایلش ثبت کرده بک لینک بده

تاپیک های مشابه

  1. action bar
    نوشته شده توسط A.iman در بخش Android Studio
    پاسخ: 17
    آخرین پست: دوشنبه 07 بهمن 1392, 14:21 عصر
  2. اجرای یک وظیفه مستقل از اجرای Application_Start
    نوشته شده توسط HamidNch در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: جمعه 25 شهریور 1390, 00:02 صبح
  3. سوال: اجرا نشدن Application_Start در asp.net 2
    نوشته شده توسط omid_3952 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: چهارشنبه 09 دی 1388, 11:35 صبح
  4. Thread در Application_Start
    نوشته شده توسط Nightbat در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: چهارشنبه 28 آذر 1386, 10:08 صبح
  5. Session_start و Application_Start
    نوشته شده توسط Abbas Arizi در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 15 شهریور 1382, 13:09 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •