在ASP.NET Core 3.0应用程序中,当使用路由模板包含路径参数时,如果请求的URL与该模板不匹配,将会出现“URL未找到具有路径参数”的错误。以下是解决此问题的一种方法的代码示例:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
// ...
}
public class HomeController : Controller
{
public IActionResult Index(int id)
{
// ...
}
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
// ...
}
[FromQuery]
或[FromRoute]
属性指定参数的来源。public class HomeController : Controller
{
public IActionResult Index([FromRoute] MyObject obj)
{
// ...
}
}
通过按照上述步骤检查和调整你的代码,你应该能够解决“URL未找到具有路径参数”的问题。