猿问

为什么需要JsonRequestBehavior?

为什么需要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属性。


喵喵时光机
浏览 933回答 3
3回答

慕哥9229398

为了让自己更容易,您还可以创建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");}

Cats萌萌

默认情况下,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);}
随时随地看视频慕课网APP
我要回答