Fir*_*oso 4 asp.net-mvc http-post
我在调试MVC应用程序时遇到了麻烦,我期待它依赖于POST.
有没有一种简单的方法来配置MVC 4应用程序来拦截所有POST请求,以便我可以看到它尝试发布到哪个URL以及响应是什么?
通常,全局过滤器将是您想要的.但是,由于在路线确定之后才会触发,因此在这种情况下可能无法帮助您.
您可以尝试的一件事是Application_BeginRequest在global.asax中添加一个方法.它甚至不需要做任何事情.只需在其中设置断点,并检查Request.AppRelativeCurrentExecutionFilePath(或请求的其他成员)以查看入站路径是什么.
protected void Application_BeginRequest()
{
if (Request.HttpMethod.Equals("post", StringComparison.InvariantCultureIgnoreCase))
{ // Breakpoint here
}
}
Run Code Online (Sandbox Code Playgroud)
" 全局过滤器 "是将行为等注入管道的首选方法.MVC已经实现了其中的一些,您也可以扩展或实现自己的.
我去年实现的一个具体示例:客户端站点具有使密码过期的功能.大; 当用户在被告知时立即更改它时,工作正常.但是他们发现他们可以直接导航到网站的另一部分,直到他们下次登录才再次提示.所以我们添加了一个全局过滤器,检查密码是否过期(以及我们是否已经检查过在此会话中),如果是,则重定向到"更改密码"屏幕.更改后,他们可以返回到以前的任何地方.
但是,这样做的缺点是找出路由或绑定问题:路由引擎已经在全局过滤器获取之前评估了请求.如果无法识别目标操作,则甚至不会命中您的过滤器.因此,在这种情况下,较低级别的功能Application_BeginRequest是您唯一的现实选择.
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |