JSON 数据未传递给控制器操作并给出 POST 500 内部服务器错误
Posted
技术标签:
【中文标题】JSON 数据未传递给控制器操作并给出 POST 500 内部服务器错误【英文标题】:JSON data is not passing to the controller action and gives POST 500 internal server error 【发布时间】:2019-11-11 12:36:24 【问题描述】:我有一个名为 Pizzas.json 的文件。我已经从这个文件中读取了数据,但是我做了一个 jquery ajax 调用,它没有传递给控制器并给出“POST 500 internal server error”。在图片中查看我的代码:
查看
<script src="https://code.jquery.com/jquery-3.1.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
function getToppingsList()
$.getJSON("../pizzas.json", passDataToController);
//var newdata = JSON.parse(data);
//alert(requestData);
function passDataToController(json)
$.ajax(
type: "POST",
url: "@Url.Action("GetToppingsList","ToppingsList")",
contentType: "application/json",
data: JSON.stringify(json),
success: function (data) alert(data); ,
failure: function (errMsg)
alert(errMsg);
);
</script>
<input type="button" value="Get Toppings List" id="Render JSON" onclick="getToppingsList()" />
控制器
public class ToppingsListController : Controller
// GET: ToppingsList
public ActionResult Index()
return View();
[HttpPost]
public JsonResult GetToppingsList(List<string> ToppingsListArgument)
//ar name = "waqas";
return Json(ToppingsListArgument);
查看图片是否有错误:
【问题讨论】:
不要JSON.stringify()
你的数据 - jQuery 为你做到了。更改:data: JSON.stringify(json),
到 data: json,
@RandyCasburn 谢谢,但现在我在动作参数中收到空值
@WaqasQureshi - 那么你应该 edit 你提出问题并重写它以演示新问题。
你的参数类型错误
@WaqasQureshi 用于新问题更改列表尝试检查 JSON 是否包含任何数据 试试这段代码
function passDataToController(json)
var ToppingsListArgument = JSON.stringify(json) ;
if(ToppingsListArgument !=null && ToppingsListArgument!=undfind)
$.ajax(
type: "POST",
url: "@Url.Action("GetToppingsList","ToppingsList")",
contentType: "application/json",
data: ToppingsListArgument,
success: function (data) alert(data); ,
failure: function (errMsg)
alert(errMsg);
);
【讨论】:
以上是关于JSON 数据未传递给控制器操作并给出 POST 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
OpenCart 将数组返回到 JSON 并传递给 jQuery
如何使用 json 将复杂类型传递给 ASP.NET MVC 控制器