Javascript JSON数据未传递到控制器操作,并导致POST 500内部服务器错误
我有一个名为pizzas.json的文件。我已经从这个文件中读取了数据,但是我进行了jqueryajax调用,它没有传递给控制器,并给出了“POST 500内部服务器错误”。在图像中查看我的代码: 查看Javascript JSON数据未传递到控制器操作,并导致POST 500内部服务器错误,javascript,c#,jquery,json,asp.net-mvc,Javascript,C#,Jquery,Json,Asp.net Mvc,我有一个名为pizzas.json的文件。我已经从这个文件中读取了数据,但是我进行了jqueryajax调用,它没有传递给控制器,并给出了“POST 500内部服务器错误”。在图像中查看我的代码: 查看 <script src="https://code.jquery.com/jquery-3.1.1.min.js" type="text/javascript"></script> <script type="text/javascript"> fun
<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()" />
函数getToppingsList(){
$.getJSON(“../pizzas.json”,passDataToController);
}
//var newdata=JSON.parse(数据);
//警报(请求数据);
函数passDataToController(json){
$.ajax({
类型:“POST”,
url:@url.Action(“GetToppingList”、“ToppingList”),
contentType:“应用程序/json”,
数据:JSON.stringify(JSON),
成功:函数(数据){警报(数据);},
失败:函数(errMsg){
警报(errMsg);
}
});
}
控制器
public class ToppingsListController : Controller
{
// GET: ToppingsList
public ActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult GetToppingsList(List<string> ToppingsListArgument)
{
//ar name = "waqas";
return Json(ToppingsListArgument);
}
}
公共类ToppingListController:控制器
{
//获取:排行榜
公共行动结果索引()
{
返回视图();
}
[HttpPost]
public JsonResult GetToppingsList(List-ToppingsListArgument)
{
//ar name=“waqas”;
返回Json(ToppingListArgument);
}
}
在图像中查找错误:
尝试检查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是否包含任何数据 试试这个代码
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.stringify()
您的数据-jQuery会为您这样做。更改:data:JSON.stringify(JSON),
为data:JSON,
@RandyCasburn谢谢,但现在我收到的是空值argument@WaqasQureshi-然后你应该提问并重写它以演示新问题。你的参数类型是wrong@WaqasQureshi对于新问题,请将列表ToppingListArgument更改为字符串ToppingListArgumentDonJSON.stringify()
您的数据-jQuery为您提供这些数据。更改:data:JSON.stringify(JSON),
为data:JSON,
@RandyCasburn谢谢,但现在我收到的是空值argument@WaqasQureshi-然后你应该提问并重写它以演示新问题。你的参数类型是wrong@WaqasQureshi对于新问题,请将列表ToppingListArgument更改为字符串ToppingListArgument