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.