加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 防止加载部分视图

发布时间:2020-12-15 19:51:07 所属栏目:asp.Net 来源:网络整理
导读:如何通过键入 http://mydomain.com/site/edit/1来阻止加载部分视图?有没有办法这样做? /马丁 解决方法 如果通过Ajax加载部分,则可以检查请求HTTP头HTTP_X_REQUESTED_WITH是否存在且其值是否等于XMLHttpRequest. 当通过浏览器发出请求时,标头不存在 这是一
如何通过键入 http://mydomain.com/site/edit/1来阻止加载部分视图?有没有办法这样做?

/马丁

解决方法

如果通过Ajax加载部分,则可以检查请求HTTP头HTTP_X_REQUESTED_WITH是否存在且其值是否等于XMLHttpRequest.

当通过浏览器发出请求时,标头不存在

这是一个非常简单的Action Filter属性实现,可以为您完成工作

public class CheckAjaxRequestAttribute : ActionFilterAttribute
{
    private const string AJAX_HEADER = "X-Requested-With";

    public override void OnActionExecuting( ActionExecutingContext filterContext ) {
        bool isAjaxRequest = filterContext.HttpContext.Request.Headers[AJAX_HEADER] != null;
        if ( !isAjaxRequest ) {
            filterContext.Result = new ViewResult { ViewName = "Unauthorized" };
        }
    }
}

您可以使用它来装饰要检查请求是否为ajax请求的任何操作

[HttpGet]
[CheckAjaxRequest]
public virtual ActionResult ListCustomers() {
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读