تنفيذ التعليمات البرمجية على كل طلب في ASP.NET MVC

StackOverflow https://stackoverflow.com/questions/1209154

  •  05-07-2019
  •  | 
  •  

سؤال

ولدي وحدة تحكم التي ترث كافة وحدات تحكم بلدي من وأنا بحاجة لتنفيذ بعض التعليمات البرمجية لكل طلب وحدة تحكم. حاولت ما يلي:

protected override void Execute(System.Web.Routing.RequestContext requestContext)
{
    if (Session["mallDetected"] == null)
    {
        Session["mallDetected"] = DateTime.Now.Ticks;
        IList<Mall> malls = Mall.FindNearestByIp(Request.UserHostAddress);

        if (malls.Count > 0)
        {
            Session["mall"] = malls[0];
        }
    }

    base.Execute(requestContext);
}

ولكن على ما يبدو حالة جلسة العمل غير متوفرة في أسلوب التنفيذ حتى بعد استدعاء base.Execute ()، الذي لا يعمل بالنسبة لي. هل هناك مكان حيث يمكن تنفيذ هذه التعليمات البرمجية جلسة لكل طلب في ASP.NET MVC؟

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

المحلول

وحاول تجاوز OnActionExecuted في وحدة تحكم قاعدة أو تنفيذ وظائف كعامل تصفية.

نصائح أخرى

إذا كنت تريد شيئا أن يحدث في تطبيق ASP.NET على كل طلب، وربما كنت أفضل حالا بنائه إلى IHttpModule بدلا من بنائه إلى وحدة تحكم. كيف نضمن سوف خلفكم تنفيذ حدة التحكم الخاصة بك بشكل صحيح؟

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