Cannot find System.Web.Mvc.UrlHelper.GenerateUrl in .Net Core 3.0

Viewed 812

I'm trying to port a asp.net mvc 3.0 to Asp.Net Core 3.0 but now I'm stuck and Cannot find UrlHelper.GenerateUrl in .Net Core 3.0. even the UrlHelper in Microsoft.AspNetCore.Mvc.Routing doesn't have GenerateUrl, seems like it is removed in .Net Core version 3.0. are there any replacements?

1 Answers

You can use the LinkGenerator. From the documentation:

URL generation is based on addresses, which support arbitrary extensibility:

The Link Generator API (LinkGenerator) can be resolved anywhere using dependency injection (DI) to generate URLs.

Where the Link Generator API isn't available via DI, IUrlHelper offers methods to build URLs.

DI example:

public class MyController : Controller
{
    private readonly LinkGenerator _linkGenerator;

    public MyController(LinkGenerator linkGenerator)
    {
        _linkGenerator = linkGenerator;
    }

    public IActionResult Index()
    {
        var url = _linkGenerator.GetPathByAction(nameof(Index), "My", new { someParameter });

        // ...
    }
}
Related