我试图将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版中将其删除。有替代品吗?
答案 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 });
// ...
}
}