在.Net Core 3.0中找不到System.Web.Mvc.UrlHelper.GenerateUrl

时间:2019-10-14 17:10:25

标签: asp.net-mvc asp.net-core asp.net-core-3.0

我试图将asp.net mvc 3.0移植到Asp.Net Core 3.0,但是现在我被卡住了,在.Net Core 3.0中找不到UrlHelper.GenerateUrl。即使UrlHelper中的Microsoft.AspNetCore.Mvc.Routing没有GenerateUrl,似乎也已在.Net Core 3.0版中将其删除。有替代品吗?

1 个答案:

答案 0 :(得分:3)

您可以使用LinkGenerator。来自documentation

  

URL的生成基于地址,该地址支持任意   扩展性:

     

可以使用依赖项注入(DI)生成URL来解析任何地方的Link Generator API(LinkGenerator)。

     

在无法通过DI使用Link Generator API的地方,IUrlHelper提供了构建URL的方法。

DI示例:

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 });

        // ...
    }
}