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