I\'m developing an ASP.NET Core application. My application hosted with NGinx on url http://somedomain.com/MyApplication
.
I need all requests routed to
Attribute routing for ASP.NET Core.In the below example shows
[Route("MyApplication")]
public class MyController : Controller
{
//You can have multiple routes on an action
[Route("")] /MyApplication
[Route("/test")] you have move to the /MyApplication/test
[HttpGet]
public async Task<IActionResult> Login(string returnUrl = null)
{
//Your Code Session
}
}
OR you use Attribute routing with Http[Verb] attributes. To be add the path in [HttpGet("Your Path")],In the case of [HttpPost("Your Path")].
[HttpGet("/MyApplication")]
[AllowAnonymous]
public async Task<IActionResult> Login(string returnUrl = null)
{
// Clear the existing external cookie to ensure a clean login process
await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);
ViewData["ReturnUrl"] = returnUrl;
return View();
}
you can use the PathBase
middleware just before Mvc
like this :
partial class Startup {
public void Configure(
IApplicationBuilder app,
IHostingEnvironment env
) {
app.UsePathBase(new PathString("/MyApplication"));
app.UseMvc();
}
}
with the PathBase
middleware, no need to change any mvc code, it will automatically add to the request and response.
please refer to https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.builder.usepathbaseextensions.usepathbase?view=aspnetcore-2.2
If you are using MVC, you can try to change the default route format.
In Startup.cs
replace the line
app.UseMvc(routes => { routes.MapRoute(name: "default", template: "/{controller=Home}/{action=Index}/{id?}"); });
with this one:
app.UseMvc(routes => { routes.MapRoute(name: "default", template: "MyApplication/{controller=Home}/{action=Index}/{id?}"); });
Let me know if it's what you need
[Route("MyApplication")]
public class MyController : Controller
{
[HttpGet]
public async Task<IActionResult> Login(string returnUrl = null)
{
// Blah!
}
}
In App_Start/RouteConfig.cs:
routes.MapRoute(
name: "default",
url: "MyApplication/{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);