Javascript 无法使DOT NET CORE MVC向视图返回多个LINQ结果

Javascript 无法使DOT NET CORE MVC向视图返回多个LINQ结果,javascript,Javascript,我能够从controller方法中传递一个值,请参阅第一个cal查询以仅返回SQL LINQ查询中的卡路里值。但是,我无法获得两个列,请参见下面视图中的代码控制器代码和javascript(我无法找出导致填充零数据的原因) 我可以在javascript代码中看到var mytext返回:{“foodCal”:101,“foodVarient”:“Vegan”} public JsonResult getcarries(字符串Productdata) { //这是返回一个值卡路里的原始代码 //v

我能够从controller方法中传递一个值,请参阅第一个cal查询以仅返回SQL LINQ查询中的卡路里值。但是,我无法获得两个列,请参见下面视图中的代码控制器代码和javascript(我无法找出导致填充零数据的原因)

我可以在javascript代码中看到var mytext返回:{“foodCal”:101,“foodVarient”:“Vegan”}

public JsonResult getcarries(字符串Productdata)
{
//这是返回一个值卡路里的原始代码
//var calquery=(来自_context.Foods中的c)
//其中c.FoodName==Productdata
//选择c.FoodCal).FirstOrDefault();
var calquery=(来自_context.Foods中的c)
其中c.FoodName==Productdata
选择新的
{c.FoodCal,c.FoodVarient}
).FirstOrDefault();
如果(calquery!=null)
{
返回Json(calquery);
}
其他的
{
calquery=null;
返回Json(calquery);
}
}
$(文档).ready(函数()
{
document.getElementById(“FoodType”).onchange=function()
{
$.ajax({
键入:“POST”,
数据类型:“json”,
url:'@url.Action(“GetCarries”)',
数据:{Productdata:document.getElementById(“FoodType”).value},
成功:功能(数据)
{
var mytext=JSON.stringify(数据);
警报(mytext);
var obj=JSON.parse(JSON);
document.getElementById(“FoodCalories”).value=obj.foodCal;
document.getElementById(“FoodHealth”).value=obj.foodVarient;
}
});
}
});

我解决了这个问题

var object=JSON.parse(mytext),而不是JSON

问题解决了

希望其他人从这个代码中受益

public JsonResult GetCalories(string Productdata)
{
            //THis is the orginal code which returns one value, CALORIES
            //var calquery = (from c in _context.Foods
            //                where c.FoodName == Productdata
            //                select c.FoodCal).FirstOrDefault();

           
            var calquery = (from c in _context.Foods
                            where c.FoodName == Productdata
                            select new
                            { c.FoodCal, c.FoodVarient }
                            ).FirstOrDefault();

            if (calquery != null)
            {
                return Json(calquery); 
            }
            else
            {
                calquery = null;
                return Json(calquery);
            }
}

    <script src="/lib/jquery/dist/jquery.js"></script>
    
    <script type="text/javascript">
            $(document).ready(function ()
    {
                    document.getElementById("FoodType").onchange = function ()
                {
                    $.ajax({
                            type: 'POST',
                            dataType: 'json',
                            url: '@Url.Action("GetCalories")',
                            data: { Productdata: document.getElementById("FoodType").value },
                            
                            success: function (data)
                            {
                                var mytext = JSON.stringify(data);
                                alert(mytext);
                                var obj = JSON.parse(json);
                                document.getElementById("FoodCalories").value = obj.foodCal;
                                document.getElementById("FoodHealth").value = obj.foodVarient;
    
                            }
                    });
                }
            });
    </script>