1.Controller 的OnActionExecuting中控制

 protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Request["NoPower"].HasValue() == false)
{
filterContext.Result = Redirect("http://www.baidu.com");
return;
}
base.OnActionExecuting(filterContext);
}

2.ActionFilterAttribute 控制

  if (HttpContext.Current.Request.HttpMethod == "POST" && MyMvcHelper.RequestIsAjax)
{
filterContext.Result = new JsonMsg() { msg = @"请重新<a onclick=""jv.page(event).LoadView({url:'" + "~/Login".ResolveUrl() + @"'});"">登录</a>" };
HttpContext.Current.Response.StatusCode = ;
return;
} return;

3.IActionInvoker 控制

//Controller 中定义协议标准
protected override IActionInvoker CreateActionInvoker()
{
return new MyActionInvoker();
}
 public class WeiXinWebViewActionInvoker : System.Web.Mvc.ControllerActionInvoker
{
public override bool InvokeAction(System.Web.Mvc.ControllerContext controllerContext, string actionName)
{
if (controllerContext.Controller as WeiXinWebViewController == null)
{
return base.InvokeAction(controllerContext, actionName);
} //描述了控制器的相关信息
var controllerDescriptor = this.GetControllerDescriptor(controllerContext); //描述了相关Action的相关信息
var actionDescriptor = this.FindAction(controllerContext, controllerDescriptor, actionName); if (controllerContext.HttpContext.Request.HttpMethod == "POST")
{
return base.InvokeAction(controllerContext, actionName);
} var wxwv = controllerContext.Controller as WeiXinWebViewController; if (wxwv == null)
{
return base.InvokeAction(controllerContext, actionName);
} var wxOAuthSetting = wxwv.GetOAuthCookie();
if (wxOAuthSetting.HasValue() == false || wxOAuthSetting.Item1.HasValue() == false)
{
var url = controllerContext.HttpContext.Request.Url.AbsoluteUri;
wxwv.OAuthIntro(url).ExecuteResult(controllerContext);
return true;
} try
{
return base.InvokeAction(controllerContext, actionName);
}
catch (Exception e)
{
(controllerContext.Controller as MyOpenController).TransferToErrorUrl(e.Message).ExecuteResult(controllerContext);
return true;
} }
}

最新文章

  1. 【NuGet】搭建自己团队或公司的NuGet
  2. 邻接表无向图(一)之 C语言详解
  3. 闲谈SQL脚本优化
  4. 关于DOM树的常见增删操作
  5. NopCommerce 3.80框架研究(一) 数据访问与持久化
  6. IOS webView快照
  7. DDMS files not found: tools\hprof-conv.exe
  8. 前台利用jcrop做头像选择预览,后台通过django利用Uploadify组件上传图最终使用PIL做图像裁切
  9. hdu4491 Windmill Animation (几何)
  10. HDU 3032 Nim or not Nim? (sg函数求解)
  11. winform控件跨线程委托
  12. iOS纯代码工程手动快速适配
  13. mysql-SQL优化总结
  14. Chapter 7 Resources in Plug-In(1)
  15. java特殊抽象类-接口
  16. ie和dom事件流的区别
  17. spring整合kafka(配置文件方式 消费者)
  18. Git详解之一 Git实战
  19. [Unity工具]嵌套Prefab
  20. [kx]人眼结构&amp;凹/凸透镜成像及生活应用

热门文章

  1. vs2003属性窗口空白的问题
  2. git常用命令小结
  3. java动态画圈圈。运用多线程,绘图
  4. PL/SQL 训练11--包
  5. Unicode 和 UTF-8关系
  6. 图灵机器人,web录音实现自动化交互问答
  7. EasyGui
  8. sklearn 中 make_blobs模块
  9. 解决 Python 连不上pip库的问题(使用国内镜像地址)
  10. POJ3624(背包问题)