我正在使用ASP.NET Core MVC构建一个RESTful API,我想使用查询字符串参数来指定返回集合的资源上的过滤和分页.
在这种情况下,我需要读取查询字符串中传递的值来过滤并选择要返回的结果.
我已经发现控制器Get操作内部访问HttpContext.Request.Query返回一个IQueryCollection.
问题是我不知道如何使用它来检索值.事实上,我认为要做的方法是使用,例如
string page = HttpContext.Request.Query["page"]
Run Code Online (Sandbox Code Playgroud)
问题是HttpContext.Request.Query["page"]不返回字符串,而是返回StringValues.
无论如何,如何使用它IQueryCollection来实际读取查询字符串值?
好的.我已经读过这篇文章了,我对它如何适用于我的例子感到困惑(下图).
class Foo
{
public static implicit operator Foo(IFooCompatible fooLike)
{
return fooLike.ToFoo();
}
}
interface IFooCompatible
{
Foo ToFoo();
void FromFoo(Foo foo);
}
class Bar : IFooCompatible
{
public Foo ToFoo()
{
return new Foo();
}
public void FromFoo(Foo foo)
{
}
}
class Program
{
static void Main(string[] args)
{
Foo foo = new Bar();
// should be the same as:
// var foo = (new Bar()).ToFoo();
}
}
Run Code Online (Sandbox Code Playgroud)
我已经彻底阅读了我链接的帖子.我已阅读C#4规范的第10.10.3节.给出的所有示例都涉及泛型和继承,而上述情况则不然.
任何人都可以解释为什么在这个例子的上下文中不允许这样做?
请不要以"因为规范说明"或仅引用规范的形式发布帖子.显然,规范不足以让我理解,否则我不会发布这个问题. …