当前位置: 首页 > 面试题库 >

ASP.NET MVC:对操作强制执行A​​JAX请求

杨曜瑞
2023-03-14
问题内容

我正在寻找一种方法来强制执行仅通过AJAX请求访问的控制器操作。

调用action方法之前执行此操作的最佳方法是什么? 我想从我的动作方法中重构以下内容:

if(Request.IsAjaxRequest())
    // Do something
else
    // return an error of some sort

我设想的是ActionMethodSelectorAttribute可以像[AcceptVerbs]属性一样使用的。我没有创建这样的自定义属性的经验。


问题答案:

创建一个触发OnActionExecuting的ActionFilter

public class AjaxActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (!filterContext.HttpContext.Request.IsAjaxRequest())
            filterContext.Result = new RedirectResult(//path to error message);           
    }
}

设置过滤器的Result属性将阻止执行ActionMethod。

然后,您可以将其作为属性应用于ActionMethods。



 类似资料:
  • 我有一个猫鼬模式 我最初设置了名称和电话字段的集合。我需要将集合更新为消息数组中的新消息和新地址到地址对象中。该函数还必须处理任何单个操作,即在某些情况下我只更新到消息数组或更新到名称和地址。所以我如何在单个函数中执行所有操作。

  • 我知道这应该很简单,但是我想从熊猫数据框中取一列,并且只对满足某些条件(比如小于1)的条目乘以标量(比如2)。 例如,在这个数据框中, 如果我有兴趣在列上执行此操作,结果应该是 我有以下绝对任务: 但是我不知道如何使用中的实际值。 提前谢谢!

  • Redisson 支持对每个操作自动重试的策略并且在每次尝试期会尝试发送命令。 重试策略由设置项 retryAttempts (默认为 3) 和 retryInterval (默认为 1000 ms) 来控制。 每次尝试会在 retryInterval 时间间隔后执行。 Redisson 实例和 Redisson 对象都是完全线程安全的。 带有同步/异步方法的 Redisson 对象可通过 Red

  • 问题内容: 我们正在对所有的Ajax请求处理都使用Prototype,为了使事情变得简单,我们简单地渲染HTML内容,然后使用以下函数将其分配给适当的div: 但是,有时我需要在HTML响应中执行Javascript,而此方法似乎无法执行此操作。 由于种种原因,我试图将Ajax调用的功能列表保持在最低限度,因此,如果有一种方法可以修改现有功能而又不会破坏当前正在使用的所有位置,或者可以通过一种方式

  • 我从httprequestservlet头读取了一些数据,在我得到的fortify static fortify Analysis中 标题操作漏洞问题。修复Fortify问题的请求头操作的最佳方法是什么