Diyelim ki controller'lara düşmeyen bir istek yapmanız gerekiyor mesela mustafa'ya bir şeyler söyleteceksiniz ama bunun için controller da metot koymak gereksiz diye düşünüyorsunuz.
Örneğin:
https://localhost:5001/mustafa?saysomething=BenimAdimMustafa
dediğimizde sayfada :
BenimAdimMustafa
yazmasını istiyoruz ama bu isteğin controller'dan geçmesini de istemiyoruz. O zaman ne yaparız ?
1.) Model-view-controller projesi oluşturun.
2.) SaySomething adında bir class oluşturalım :
public class SaySomething
{
public RequestDelegate Handler()
{
return async c => await Task.Run(async () =>
{
string message = c.Request.Query["saysomething"].ToString();
await c.Response.WriteAsync(message);
});
}
}
3.) endpoint'lerimizi aşağıdaki gibi değiştirelim :
app.UseEndpoints(endpoints =>
{
endpoints.Map("mustafa", new SaySomething().Handler());
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
Şimdi uygulamayı çalıştıralam ve aşağıdaki linke istek atalım :
https://localhost:5001/mustafa?saysomething=BenimAdimMustafa
Gördüğünüz üzere :
Sonuç :
Eğer controllerdan geçmesini istemediğiniz bir istek yapmak istersek custom Route Handler oluşturabiliriz.
endpoints.Map belirli bir path için belirli bir metot çalıştırmamıza yarayabilir. Ve endpoints.Map metodu ikinci paramere olarak RequestDelagete döndüren bir metot alır.
Bir dahaki yazımda görüşmek dileğiyle.
En iyi dileklerim ile.
Mustafa Samed Yeyin.
Top comments (0)