【发布时间】: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 用于新问题更改列表
ToppingsListArgument 到字符串 ToppingsListArgument
标签: javascript c# jquery json asp.net-mvc