LinkGenerator
是 .NET Core 中的一个类,用于生成 URL 链接。如果你发现 LinkGenerator
总是返回 null
,可能是由于以下几个原因:
LinkGenerator
是 .NET Core 中用于生成 URL 的一个服务,它可以在应用程序的任何地方使用,而不需要依赖于 HttpContext
。这使得它在非 Web 请求上下文中(如后台任务或队列处理)特别有用。
Startup.cs
或 Program.cs
中正确注册了 LinkGenerator
。Startup.cs
或 Program.cs
中正确注册了 LinkGenerator
。LinkGenerator
将无法生成 URL。LinkGenerator
将无法生成 URL。LinkGenerator
的方法时传递了正确的参数。LinkGenerator
的方法时传递了正确的参数。LinkGenerator
,确保你已经正确设置了 LinkGenerator
的上下文。LinkGenerator
,确保你已经正确设置了 LinkGenerator
的上下文。以下是一个完整的示例,展示了如何在 ASP.NET Core 应用程序中使用 LinkGenerator
:
public class HomeController : Controller
{
private readonly LinkGenerator _linkGenerator;
public HomeController(LinkGenerator linkGenerator)
{
_linkGenerator = linkGenerator;
}
public IActionResult Index()
{
var url = _linkGenerator.GetPathByAction("About", "Home");
ViewBag.Link = url;
return View();
}
}
在 Startup.cs
中:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSingleton<LinkGenerator>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
通过以上步骤和示例代码,你应该能够解决 LinkGenerator
返回 null
的问题。如果问题仍然存在,请检查日志和调试信息,以获取更多线索。
领取专属 10元无门槛券
手把手带您无忧上云