MVC Ajax Attribute

MVC Ajax işlemlerindeki url nin başka yollarla işleme sokulmaısnı engellemek ve sadece ajax üzerinden çalıştırmak için özellik ekleyelim.
Bunun iin öncelikle projeniz üzerinde ekle/klasör yolunu izleyerek yeni bir klasör oluşturun ve adını CustomFilter olarak adlandırın, sonrasında bu klasörün içine yeni bir class oluşturarak aşağıdaki kodları yazın;

public class AjaxOnlyAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
                if (!filterContext.HttpContext.Request.IsAjaxRequest())
                filterContext.HttpContext.Response.Redirect("/");
        }
    }
}


Class içindeki bu kodlarla gelen istek incelenecek ve ajax tarafından olmadığı anlaşıldığında istediğiniz sayfaya yönlenecektir.
using System.Web.Mvc; referansını eklemeyi unutmayın.

Controller sayfanızda [AjaxOnly] ve  [HttpPost]  attribute ekleyerek kullanabilirsiniz.

Listeye Dön