是否为 ASP.NET MVC 控制器操作设置与 AJAX 相关的任何属性? [英] Is there any attribute relating to AJAX to be set for ASP.NET MVC controller actions?

查看:22
本文介绍了是否为 ASP.NET MVC 控制器操作设置与 AJAX 相关的任何属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 ASP.NET MVC 中使用带有 AJAX 调用的局部视图,这是我第一次使用它.我只是搜索了一下是否有什么特别的东西我应该事先知道,其中一个我很好奇的是,看看是否有任何特殊的属性应该设置或与 AJAX 调用相关?[ChildActionOnly][HttpGet]

I want to use partial views with AJAX calls in ASP.NET MVC, and this is the first time I'm using it. I just searched to see if there is anything special I should know beforehand, and one of'em that I'm curious about, is to see if there is any special attribute that should be set or is related to AJAX calls? Something like [ChildActionOnly] or [HttpGet]

推荐答案

我认为 ajax 没有内置属性,但您可以像这样创建自己的 AjaxOnly 过滤器:

I don't think there is built in attribute for ajax, but you can create your own AjaxOnly filter like this:

public class AjaxOnlyAttribute : ActionMethodSelectorAttribute 
{
    public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
    {
        return controllerContext.RequestContext.HttpContext.Request.IsAjaxRequest();
    }
}

并像这样装饰您的操作方法:

And decorate your action methods like this:

[AjaxOnly]
public ActionResult AjaxMethod()
{
   
}

另见:ASP.NET MVC Action Filter – Ajax Only Attribute 了解另一种实现方式

See Also: ASP.NET MVC Action Filter – Ajax Only Attribute for another way of implementing this

这篇关于是否为 ASP.NET MVC 控制器操作设置与 AJAX 相关的任何属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆