c# - C# 函数参数中的方括号语法?

标签 c# asp.net

我正在学习 ASP.NET 并偶然发现了这个方法声明:

public IQueryable<Product> GetProducts([QueryString("id")] int? categoryId) {.....}

教程说 categoryId 将等于查询字符串“id”(来自 URL,如 &id=5)但问题是什么是 [QueryString("id")] 调用的语法?它可以在 ASP.NET 之外使用吗?它的应用是什么?

最佳答案

那是应用 QueryStringAttribute属性到参数 categoryId。它只是一个属性,就像您可能更习惯在方法或类上看到的属性一样,如下所示:

[STAThread]
static void Main()
{
}

在这种情况下,大概是框架的某些部分(我不是 ASP.NET 开发人员,所以我无法指出确切是什么)正在使用反射来查找所有方法,找到应用于参数的任何 QueryStringAttribute 值,然后将这些属性中的名称与查询字符串中的名称进行匹配,然后提取匹配值以传递到方法调用中(再次使用反射)。

关于c# - C# 函数参数中的方括号语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15691808/

相关文章:

c# - 我在分配数组时遇到问题?

c# - 编辑 HTML 文件以 jQuery 样式操作 DOM

asp.net - 如何检查 Amazon S3 存储桶中文件夹的子文件夹大小

asp.net - 这些评论有什么区别

c# - Asp.Net 路由 - 用生成的 URL 中的破折号替换空格 %20

c# - 从 POST 操作重定向到 POST 操作

c# - C# 中的 HtmlEncode

c# - 绑定(bind) TabControl 跨选项卡重复相同内容或控件

c# - 即使表单没有焦点也拦截按键

c# - 使用 asp.net mvc beta 的强类型 actionlink?