每一个请求都会经过控制器处理,控制器中的每个方法被称为控制器操作,它处理具体的请求。
1操作输入参数
控制器的操作的输入参数可以是内置类型也可以是自定义类型。
2操作返回结果
上述返回值类型均继承自ActionResult,除了上述类型外,控制器可以返回任意的类型!
3 HTTP动词特性
特性有HttpGet、HttpPost、HttpDelete、HttpPut、HttpHead、HttpOptions、HttpPatch,当没有限定任何动词时,不论何种请求,get,post,put等等,被请求的操作都会被调用。
4 操作过滤器
过滤器接口有
授权过滤器:public interface IAuthorizationFilter
动作过滤器:public interface IActionFilter
身份验证过滤器:public interface IAuthenticationFilter
异常过滤器:public interface IExceptionFilter
结果过滤器:public interface IResultFilter
1)AuthorizeAttribute
public class AuthorizeAttribute : FilterAttribute, IAuthorizationFilter
AuthorizeAttribute的两个常用属性
Roles:获取或设置有权访问控制器或操作方法的用户角色。
Users:获取或设置有权访问控制器或操作方法的用户。
可以在Web.config的配置未通过验证跳转的页面:
配合其使用的属性
AllowAnonymous
public sealed class AllowAnonymousAttribute : Attribute
允许跳过AuthorizeAttribute的验证执行控制器操作。
2)ChildActionOnlyAttribute
public sealed class ChildActionOnlyAttribute : FilterAttribute, IAuthorizationFilter
指示操作方法只能作为子操作进行调用
例:
控制器
public class HomeController : Controller{[ChildActionOnly] public ActionResult TestPy() { return PartialView(); }}
分部视图TestPy.cshtml:
这是部分视图
调用页Index.cshtml: