创建自定义路由
Creating а custom routing
在我的应用程序中,我想创建一个自定义路由。我希望当我输入 www.mydomainname.com/stringdata
之类的 URL 时触发 DefaultAction
:
public async Task<IActionResult> DefaultAction(string stringdata)
{
...
}
我尝试使用 app.UseMvc
扩展名来做到这一点:
app.UseMvc(routes =>
{
routes.MapRoute(
name: null,
template: "{stringdata}",
defaults: new { controller = "DefaultController", action = "DefaultAction" });
});
但我读到我应该使用 endpoints.MapControllerRoute()
而不是 app.UseMvc()
。
是否可以使用 endpoints.MapControllerRoute()
创建这条路线?
只需将 RouteAttribute [Route("{stringdata}")]
应用于操作方法:
[Route("{stringdata}")]
public async Task<IActionResult> DefaultAction(string stringdata)
{
...
}
用标准模板生成的Configure()
方法按要求处理,不调用MapControllerRoute()
:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
有关更多信息,包括如何使用 MapControllerRoute()
(以备不时之需),请参阅 Routing to controller actions in ASP.NET Core
在我的应用程序中,我想创建一个自定义路由。我希望当我输入 www.mydomainname.com/stringdata
之类的 URL 时触发 DefaultAction
:
public async Task<IActionResult> DefaultAction(string stringdata)
{
...
}
我尝试使用 app.UseMvc
扩展名来做到这一点:
app.UseMvc(routes =>
{
routes.MapRoute(
name: null,
template: "{stringdata}",
defaults: new { controller = "DefaultController", action = "DefaultAction" });
});
但我读到我应该使用 endpoints.MapControllerRoute()
而不是 app.UseMvc()
。
是否可以使用 endpoints.MapControllerRoute()
创建这条路线?
只需将 RouteAttribute [Route("{stringdata}")]
应用于操作方法:
[Route("{stringdata}")]
public async Task<IActionResult> DefaultAction(string stringdata)
{
...
}
用标准模板生成的Configure()
方法按要求处理,不调用MapControllerRoute()
:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
有关更多信息,包括如何使用 MapControllerRoute()
(以备不时之需),请参阅 Routing to controller actions in ASP.NET Core