【问题标题】:Prevent Access to Partial View from URL but not from Ajax Call [duplicate]防止从 URL 访问部分视图,但不能从 Ajax 调用 [重复]
【发布时间】:2016-11-26 15:06:08
【问题描述】:

我在控制器中编写了一些部分方法,它可以直接输入 url 来访问。我想限制那些特定的方法。我使用 [ChildActionOnly] 属性来限制它。它工作正常,但我正在使用 Ajax Call 来访问这些方法。 Ajax 调用在 ChildActionOnly 中不起作用。是否有任何属性会阻止 url 并允许 Ajax 调用? 谢谢。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 model-view-controller asp.net-ajax


    【解决方案1】:

    您可以使用Request.IsAjaxRequest() 来确定调用是否为ajax 调用,然后做任何您想做的事情。

    public ActionResult TestRadioButtons()
    {
         if(!Request.IsAjaxRequest())
           return new HttpNotFoundResult("Not found");
    
        //continue processing 
       // to do :Return something    
    }
    

    如果您愿意,您可以简单地将用户重定向到另一个页面(非 ajax 操作方法)而不是返回 NotFound 结果。

    if(!Request.IsAjaxRequest())
    {
       return RedirectToAction("Index");
    }
    

    【讨论】:

    • 这是一个很好的解决方法,应该由 OP 标记为正确!今天帮了我很多谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 2013-08-30
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2017-11-22
    相关资源
    最近更新 更多