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