https://www.cnblogs.com/dotnet261010/p/10909527.html
MVC的一些特性,如下:
BindAttribute(限制实体属性)
RemoteAttribute(远程验证,需要页面使用jquery.validate.js和jquery.validate.unobtrusive.js)
HandleErrorAttribute(根据异常类型直接跳转到相应的错误页面)
HiddenInputAttribute(在Model中直接控制页面输入框显示,用处不大)
1.调用Controller中方法时,需要做一些额外的判断或者其他工作。例如:
//前端调用
$(function () { //发送异步请求实现登录 $.post("/Home/checkLogin", {}, function (data) { alert(data); }); });
//Controller,在方法上面加上特性
[evanPei]//MVC特性 public string checkLogin() { return "test"; }
//特性代码,在HTML调用CheckLogin时,在方法的执行前和执行后会先执行特性中的代码。例如判断是否未登录就调用方法。
public class evanPeiAttribute : FilterAttribute, IActionFilter { /// <summary> /// 执行后 /// </summary> /// <param name="filterContext"></param> public void OnActionExecuted(ActionExecutedContext filterContext) { if (1 > 2) { filterContext.HttpContext.Session.RemoveAll(); filterContext.HttpContext.Response.Write("<script language=javascript>111</script>"); } else { filterContext.HttpContext.Session.RemoveAll(); filterContext.HttpContext.Response.Write("<script language=javascript>222</script>"); } } /// <summary> /// 执行前 /// </summary> /// <param name="filterContext"></param> public void OnActionExecuting(ActionExecutingContext filterContext) { if (1 > 2) { filterContext.HttpContext.Session.RemoveAll(); filterContext.HttpContext.Response.Write("<script language=javascript>aaa</script>"); } else { filterContext.HttpContext.Session.RemoveAll(); filterContext.HttpContext.Response.Write("<script language=javascript>bbb</script>"); } } }