gpt4 book ai didi

c# - 无法显示 Controller 的 LINQ 查询输出值以查看

转载 作者:行者123 更新时间:2023-11-30 21:36:41 25 4
gpt4 key购买 nike

Controller

public ActionResult Track(string awb)
{
ViewBag.Title = "Track Your Shipment";
ViewBag.ErrorMessage = string.Empty;
ViewBag.ShipmentNo = awb;
FLCourierDetail trackOutput = new FLCourierDetail();

if (awb != null)
{
trackOutput = db.FL_CourierDetail.SingleOrDefault(fLCourierDetail => fLCourierDetail.AWBNumber == awb);
if (trackOutput != null)
{
var courierId = db.FL_CourierDetail.Where(s => s.AWBNumber == awb).Select(s => s.Courier);
var currentStatus = (from c in db.FL_CourierDetail
join s in db.FL_CourierStatus
on c.Courier equals s.CourierId
where c.AWBNumber == awb
select new { awb = c.AWBNumber, staus = s.StatusId, updated = s.StatusId, remark = s.Remark }).ToList();
ViewBag.CurrentStatus = currentStatus;
}
else
{
ViewBag.ErrorMessage = "Shipment number not found.";
}
}
else
{
ViewBag.ErrorMessage = "Please provide valid Shipment number.";
}

return View(trackOutput);
}

查看

       <div class="col-md-6">
@{
var status = ViewBag.CurrentStatus;

foreach (var item in status)
{
<p>@item</p>
}
}
</div>

如果我使用 foreach 或 if 循环进行迭代,我可以在调试中看到数据,但我无法用 html 编写。

调试

enter image description here

网页

enter image description here

错误

我无法读取每个值,如 awb、状态、日期等。

enter image description here

我在这里错过了什么吗?

最佳答案

查询结果是一个匿名类,在循环中,每一项都是一个对象,因此异常,对象现在具有 awb 属性。

解决这个问题的一种方法是定义一个类:

public class Status {
public string awb { get; set; }
public int staus { get; set; }
public int updated { get; set; }
public string remark { get; set; }
}

然后你的选择看起来像:

... select new Status { awb = c.AWBNumber, staus = s.StatusId, updated = s.StatusId, remark = s.Remark }).ToList();

然后,在 View 中:

var status = (List<Status>) ViewBag.CurrentStatus;

另一种可能的解决方案是使用 strongly typed view model

关于c# - 无法显示 Controller 的 LINQ 查询输出值以查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47943028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com