c# - MVC中的属性和过滤器有什么区别

标签 c# asp.net-mvc asp.net-mvc-4 asp.net-web-api action-filter

现在我可以得到一个比较,而不仅仅是一个定义。

例子:

SomeClassAttribute (or ISomeClassAttribute)

对比

SomeClassFilter (or ISomeClassFilter)

我觉得它们可以以相同的方式使用,但一般来说“应用了一个属性”,而“过滤器是它们产生的功能”。所以我可以“将属性添加到方法(或类或其他)以应用过滤器。

最佳答案

"So I could "add an attribute to a method (or class or whatever) to apply a filter."

你在那句话中已经明白了。 过滤器属性不是完全可比的概念,它们具有两种不同的功能。

我相信这个 MSDN article 很好地涵盖了 MVC 中的过滤 .

Attributes(至少是那些应用于过滤器的属性)标记过滤器的应用对象,即操作方法或 Controller 。 Authorize 属性就是一个例子。此属性对应于实现 IAuthorizationFilter 接口(interface)的 AuthorizationFilter。将 Authorize 属性应用于操作方法告诉 MVC 授权针对该操作方法的请求,将其应用于 Controller 告诉 MVC 授权针对 Controller 操作方法的任何请求,或者授权也可以是全局应用于所有请求。现在我之前说过,至少那些适用于过滤器的,因为 Attributes 是 .NET 的概念和语法,而不仅仅是 MVC。还有许多其他事物的属性,通常用于提供有关应用它们的属性、方法、类的附加信息。

关于c# - MVC中的属性和过滤器有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508435/

相关文章:

c# - 如何在 MVC 4 中实现日期范围验证器

iis-7.5 - ASP.NET Web API 仅在某些服务器上为 PUT 返回 404

c# - 如何访问我在该 block 外的 using block 中填充的变量?

c# - AutoFixture:配置开放式泛型样本生成器

c# - 如何在mvc中从另一个 Controller 调用一个 Controller 中编写的函数

asp.net - ADFS 2.0 身份验证的 Web 服务调用

asp.net-mvc - Mvc 4 中的 bool 模型绑定(bind)问题

jquery - 本地化不适用于 mvc4 应用程序中的按钮

c# - 检索CRM 4 C#中的自定义实体

java - 将对象从 java 传输到 C#