因为有时我的系统会以GET
类型点击,有时会点击POST
类型。
如果我用JsonRequestBehavior.AllowGet
属性修饰我的方法,那么返回Json结果时我会使用[HttpPost]
吗?
例如:
[HttpPost, ValidateAntiForgeryToken, Authorize]
public ActionResult AssociatedDevices(long id, [DataSourceRequest] DataSourceRequest request)
{
var dataParameters = request.ToDataParameters();
var deviceSetLogic = new DeviceSetLogic();
var associatedDevices = deviceSetLogic.GetAssociatedDevicesByDeviceSetId(id, dataParameters);
var result = new DataSourceResult()
{
Data = associatedDevices,
Total = Convert.ToInt32(dataParameters.TotalRecordCount)
};
return Json(result, JsonRequestBehavior.AllowGet);
}
如果我在PROD环境中像上面这样写,会引起任何问题吗?请指教。
答案 0 :(得分:1)
将JsonRequestBehavior.AllowGet
参数添加到返回Json中是没有用的,因为您的方法使用[HttpPost]
进行修饰,因此无法使用GET动词调用它。
你说有时候你的系统会“使用get命中,有时会使用post”,但如果你尝试使用GET请求调用此方法,则路由系统很可能获得404.
此方法无法回答GET请求,因此仅添加JsonRequestBehavior.AllowGet
会使代码不太清晰。
如果您的操作必须使用POST和GET谓词进行操作,则应使用[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
或[AcceptVerbs("Get", "Post")]