ASP.NET MVC:对操作强制执行 AJAX 请求
我正在寻找一种方法来强制只能通过 AJAX 请求访问控制器的操作。
在调用操作方法之前执行此操作的最佳方法是什么?我想从我的操作方法中重构以下内容:
if(Request.IsAjaxRequest())
// Do something
else
// return an error of some sort
我设想的是一个 ActionMethodSelectorAttribute
,它可以像 [AcceptVerbs]
属性一样使用。不过,我没有创建此类自定义属性的经验。
I'm looking for a way to enforce a controller's action to be accessed only via an AJAX request.
What is the best way to do this before the action method is called? I want to refactor the following from my action methods:
if(Request.IsAjaxRequest())
// Do something
else
// return an error of some sort
What I'm envisioning is an ActionMethodSelectorAttribute
that can be used like the [AcceptVerbs]
attribute. I have no experience crating such a custom attribute though.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建一个触发 OnActionExecuting 的 ActionFilter。
设置过滤器的 Result 属性将阻止 ActionMethod 的执行。
然后您可以将其作为 ActionMethods 的属性应用。
Create an ActionFilter that fires OnActionExecuting
Setting the filter's Result property will prevent execution of the ActionMethod.
You can then apply it as an attribute to your ActionMethods.
就这么简单:
我只是忘记了 IsAjaxRequest() 来自哪里,我从我拥有但“丢失”该方法的代码中粘贴。 ;)
Its as simple as this:
I just forget where IsAjaxRequest() comes from, I'm pasting from code I have but "lost" that method. ;)