我正在尝试使用我的webapi中.net核心中的IUrlhelper创建一个分页链接。
我收到错误
"值不能为null。参数名称:uriString"
我在启动时有以下代码:
services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
services.AddScoped<IUrlHelper>(factory =>
{
var actionContext = factory.GetService<IActionContextAccessor>()
.ActionContext;
return new UrlHelper(actionContext);
});
然后我有一个我构建分页链接的课程
public class LinkBuilder
{
public LinkBuilder(IUrlHelper urlHelper,string routeName, PagingInfo pagingInfo)
{
var mylink = CreateLink(urlHelper, "GetMovies", pagingInfo.PageNumber, pagingInfo.PageSize);
etc.....
}
private Uri CreateLink(IUrlHelper urlHelper,
string routeName,
int pageNo,
int pageSize)
{
//CRASHES ON NEW URI! "Value cannot be null.
Parameter name: uriString"
return new Uri(
urlHelper.Link(routeName,
new { PageNumber = pageNo, PageSize = pageSize }));
}
如果执行以下操作,我的链接始终为null。不要得到它!
//注意注入时urlhelper不为空
var link = urlHelper.Link("getsomething", new { PageNumber = 1, PageSize = 20});
Any ideas what I am doing wrong?
thanks
答案 0 :(得分:0)
找到了我自己的答案。当我构建链接时,路由的名称必须与路由名匹配。