AjaxOnly Attribute On Dotnet Core

04 Eylül 2019 1 dk okuma süresi 122 okunma

MVC 5 ve öncesinde kullandığımız Request.IsAjaxRequest() metodu malesef dotnet core tarafında yok. Ama bunun pratikliğini yine esnek bir yapı ile bize ActionMethodSelector attribute'ü sağlıyor.

Aşağıdaki kod parçası ile gelen request'in ajax request olup olmadığını anlayabiliyoruz.

public sealed class AjaxOnly : ActionMethodSelectorAttribute
 {
        public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action)
        {
            if (routeContext.HttpContext.Request.Headers != null &&
                routeContext.HttpContext.Request.Headers.ContainsKey("X-Requested-With") &&
                routeContext.HttpContext.Request.Headers.TryGetValue("X-Requested-With", out StringValues requestedWithHeader))
            {
                if (requestedWithHeader.Contains("XMLHttpRequest"))
                {
                    return true;
                }
            }


            return false;
        }
 }


Yazılarıma abone olmak ister misiniz?
Spam yapılmaz, sadece bildirim amaçlıdır. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlginizi çekebilecek diğer yazılar.
Webapi "Get exception Method not found: 'System.Collections.ObjectModel.Collection`1 System.Web.Http.HttpConfiguration.get_MessageHandlers()'" sorunu nasıl giderilir?

Önceki sürümlerde projeye çift tıkladığımızda ağaç yapısı şeklinde kırılımları açarken VS2019 ile birlikte otomatik olarak proje dosyasını açıyor. Neyseki bu alışkanlığı devam ettirebilmek için seçenek koymuşlar.

Visual Studio'da son açık kalan dosyaların hangileri olduğunu hatırlamamasından kaynaklanan hata