为了账号安全,请及时绑定邮箱和手机立即绑定

为什么需要JsonRequestBehavior?

为什么需要JsonRequestBehavior?

喵喵时光机 2019-06-24 16:07:35
为什么需要JsonRequestBehavior?为什么Json Request Behavior需要吗?如果我想限制HttpGet请求我的行动我可以用[HttpPost]属性例子:[HttpPost]public JsonResult Foo(){     return Json("Secrets");}// Instead of:public JsonResult Foo(){     return Json("Secrets", JsonRequestBehavior.AllowGet);}为什么[HttpPost]够了吗?为什么框架“困扰”我们JsonRequestBehavior.AllowGet为每一个JsonResult我们有。如果我想拒绝GET请求,我将添加HttpPost属性。
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

为了让自己更容易,您还可以创建actionfilter属性

public class AllowJsonGetAttribute : ActionFilterAttribute{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        var jsonResult = filterContext.Result as JsonResult;

        if (jsonResult == null)
            throw new ArgumentException("Action does not return a JsonResult, 
                                                   attribute AllowJsonGet is not allowed");

        jsonResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet;            

        base.OnResultExecuting(filterContext);
    }}

把它用在你的行动上

[AllowJsonGet]public JsonResult MyAjaxAction(){
    return Json("this is my test");}


查看完整回答
反对 回复 2019-06-24
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

默认情况下,JsonResult“拒绝GET”

假设我们有如下方法

  [HttpPost]
 public JsonResult amc(){}

默认情况下,它“拒绝获取”。

在下面的方法中

public JsonResult amc(){}

当您需要允许或使用GET时,我们必须使用JsonRequestBehavior.AllowGet。

public JsonResult amc(){
 return Json(new Modle.JsonResponseData { Status = flag, Message = msg, Html = html }, JsonRequestBehavior.AllowGet);}


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 932 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信