Ros*_*han 3 .net c# linq asp.net-mvc json
public List<Detail> GetOrderDetails()
{
var orderDetails = (from user in db.Users
join detail in db.OrderDetails
on user.Id equals detail.UserId
where (detail.DateAdded != null)
select new Detail
{
FirstName = user.FirstName,
LastName = user.LastName,
Origin = detail.OriginCode,
Destination = detail.DestinationCode,
CarrierCode = detail.CarrierCode,
IsReturn = detail.IsReturn,
IsCancel = detail.IsCancel,
OrderId = detail.OrderId
}).FirstOrDefault();
return Json(orderDetails);
}
Run Code Online (Sandbox Code Playgroud)
此代码给出了以下错误.
无法隐式转换类型'
System.Web.Mvc.JsonResult'到'System.Collections.Generic.List<TravelingAdmin.Controllers.Detail>
问题:
(your query).FirstOrDefault(); 返回一个元素而不是列表.Json(x) 将x转换为包含x的json表示的字符串.以下是您的选择:
FirstOrDefault()并使用return (your query).ToList(). Detail而不是List<Detail>使用return orderDetails;而不是 使用return Json(orderDetails);更新:
从你想要"在MVC控制器中的json中返回列表"的问题的标题推断
您应该将方法更改为此
public ActionResult GetOrderDetails()
{
var orderDetails = (from user in db.Users
join detail in db.OrderDetails
on user.Id equals detail.UserId
where (detail.DateAdded != null)
select new Detail
{
FirstName = user.FirstName,
LastName = user.LastName,
Origin = detail.OriginCode,
Destination = detail.DestinationCode,
CarrierCode = detail.CarrierCode,
IsReturn = detail.IsReturn,
IsCancel = detail.IsCancel,
OrderId = detail.OrderId
}).ToList();
return Json(orderDetails, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2238 次 |
| 最近记录: |