Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON数据未传递到控制器操作,并导致POST 500内部服务器错误_Javascript_C#_Jquery_Json_Asp.net Mvc - Fatal编程技术网

Javascript JSON数据未传递到控制器操作,并导致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

我有一个名为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">
    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更改为字符串ToppingListArgumentDon
JSON.stringify()
您的数据-jQuery为您提供这些数据。更改:
data:JSON.stringify(JSON),
data:JSON,
@RandyCasburn谢谢,但现在我收到的是空值argument@WaqasQureshi-然后你应该提问并重写它以演示新问题。你的参数类型是wrong@WaqasQureshi对于新问题,请将列表ToppingListArgument更改为字符串ToppingListArgument