我正在创建一个.NET Core 2.1 web api,并且遇到了UrlHelper
的问题。我使用Link
方法确定从一个资源到另一个资源的链接。大部分时间它工作得很好,但有时结果字符串缺少基本网址。
E.g:
http://localhost:1234/api/books?pageNumber=1&pageSize=10
确定http:///api/books?pageNumber=1&pageSize=10
不行它在正确和错误的结果之间来回传递,有时它们都是错误的,有时它们都是正确的。
ConfigureServices:
services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
services.AddScoped<IUrlHelper, UrlHelper>(factory =>
{
var actionContext = factory.GetService<IActionContextAccessor>().ActionContext;
return new UrlHelper(actionContext);
});
创建链接的示例方法(分页):
public string CreateResourceUri(
ResourceUriType type,
string name,
IUrlHelper urlHelper,
object additionalValues = null)
{
dynamic values = CreateValues().Merge(additionalValues);
switch (type)
{
case ResourceUriType.PreviousPage:
values.pageNumber = values.pageNumber - 1;
return urlHelper.Link(
name,
values);
case ResourceUriType.NextPage:
values.pageNumber = values.pageNumber + 1;
return urlHelper.Link(
name,
values);
default:
return urlHelper.Link(
name,
values);
}
}
非常感谢任何关于此处出现问题的想法。