ASP.NET MVC's Controller.HandleUnknownAction (string actionName) yöntemini geçersiz kılıyorum. Bir eylem bulunmazken ve bir HTTP yöntemine izin verilmediğinde çağrılır. İkisini nasıl ayırt edebilirim? Bir işlemin yapılmadığı ve bir yönteme izin verildiğinde 405 ve 405 döndürmek istiyorum.ASP.NET MVC: Denetleyici.HandleUnknownAction 404 veya 405?
5
A
cevap
3
Düşünebildiğim en basit yol, özel eylem filtresi oluşturmaktır. Bu yöntem
public class HttpPostFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!(filterContext.RequestContext.HttpContext.Request.GetHttpMethodOverride().Equals("post", StringComparison.InvariantCultureIgnoreCase)))
{
filterContext.Result = new HttpStatusCodeResult(405);
}
}
}
Hatta, bunun daha genel sürümünü oluşturmak izin değilse çok AcceptVerbsAttribute
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class AllowMethodsAttribute : ActionFilterAttribute
{
public ICollection<string> Methods
{
get;
private set;
}
public AllowMethodsAttribute(params string[] methods)
{
this.Methods = new ReadOnlyCollection<string>(methods);
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string httpMethodOverride = filterContext.HttpContext.Request.GetHttpMethodOverride();
if (!this.Methods.Contains(httpMethodOverride, StringComparer.InvariantCultureIgnoreCase))
{
filterContext.Result = new HttpStatusCodeResult(405);
}
}
}
gibi, http durum kodu sonuca dönmek için izin Ve
[AllowMethods("GET")]
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
gibi kullanacak
HttpVerbs parametresini parametre olarak almak size kalmış.
İlgili konular
- 1. ASP.NET MVC Yönlendirme 404 hata
- 2. MVC 4. IIS 7.5 PUT döndürüyor 405
- 3. ASP.NET Çekirdek - ASP.NET MVC 404 ve 500 hatası ben 404 işlemek için deneyin
- 4. ASP.NET MVC 404 kullanımı ve IIS7 <httpErrors>
- 5. Özel HttpHandler ateşlemiyor, ASP.NET MVC Uygulamasında 404 döndürüyor
- 6. ASP.NET MVC Özel Hata sayfası (StatusCode 404, bir 500 atar)
- 7. Spring Boot 405 yerine POST için 404 bilinmeyen URL'ye dönüş
- 8. ASP.NET 5 + MVC 6 + PUT veya PATCH fiillerine sahip Web API denetleyicisi, 404 hatası döndürüyor
- 9. ASP.NET Web Api 200 Tamam döndürür 404
- 10. ASP.NET MVC: Html.Partial veya Html.Action kullanın?
- 11. Bir denetleyici veya eylem adı olmadan Asp.net mvc yönlendirme
- 12. MVC 4 uygulama dağıtılırken 404 veren
- 13. - ASP.Net MVC
- 14. ASP.Net MVC
- 15. Asp.net MVC
- 16. HTTP Durumu 404 yayında MVC
- 17. ASP.NET MVC
- 18. Spring MVC vs ASP.NET (MVC?)
- 19. ASP.NET MVC
- 20. Asp.Net Mvc
- 21. ASP.NET MVC
- 22. ASP.NET MVC
- 23. ASP.Net MVC
- 24. ASP.NET MVC
- 25. asp.net MVC
- 26. Asp.net mvc
- 27. ASP.Net MVC
- 28. ASP.NET MVC
- 29. Asp.net mvc
- 30. ASP.NET MVC