asp.net-mvc - asp.net mvc razor veiwbag 不适用于实体框架工作 tolist()
问题描述
我正在尝试使用viewbag在我的chtml页面中绑定数据,但它不起作用。
我的控制器
public ActionResult ViewInvoice(decimal id)
{
var invoice_data = db.Invoices // your starting point - table in the "from" statement
.Join(db.Users, a => a.CreatedBy, b => b.UserID, (a, b) => new { a.VehicleID, a.VehicleCheckOut, a.InvoiceID, a.InvoiceStatus, a.ChargeAmount, a.VehicleNo, a.VehicleRiderName, a.VehicleRiderPhone, a.IsVehicleExtra, a.VehicleCheckIn, a.VehicleLimitOut, b.UserFirstName, b.UserLastName, b.CreatedOn })
.Join(db.ParkingStatus, a => a.InvoiceStatus, b => b.PStatusID, (a, b) => new { b.PStatusName, b.PStatusKey, a.VehicleID, a.VehicleCheckOut, a.InvoiceID, a.InvoiceStatus, a.ChargeAmount, a.VehicleNo, a.VehicleRiderName, a.VehicleRiderPhone, a.IsVehicleExtra, a.VehicleCheckIn, a.VehicleLimitOut, a.UserFirstName, a.UserLastName, a.CreatedOn })
.Join(db.Vehicles, a => a.VehicleID, b => b.VehicleID, (a, b) => new { a.PStatusName, a.PStatusKey, a.VehicleCheckOut, a.InvoiceID, a.InvoiceStatus, a.ChargeAmount, a.VehicleNo, a.VehicleRiderName, a.VehicleRiderPhone, a.IsVehicleExtra, a.VehicleCheckIn, a.VehicleLimitOut, b.VehicleName, a.UserFirstName, a.UserLastName, a.CreatedOn })
.Join(db.ParkingStatus, // the source table of the inner join
sp => sp.InvoiceStatus, // Select the primary key (the first part of the "on" clause in an sql "join" statement)
st => st.PStatusID, // Select the foreign key (the second part of the "on" clause)
(sp, st) => new { sp.PStatusName, sp.PStatusKey, sp.UserFirstName, sp.UserLastName, sp.CreatedOn, sp.VehicleCheckOut, sp.InvoiceID, sp.VehicleCheckIn, sp.VehicleLimitOut, sp.IsVehicleExtra, sp.VehicleRiderName, sp.VehicleRiderPhone, sp.ChargeAmount, sp.VehicleName }).Where(x => x.InvoiceID == id).ToList();
ViewBag.invoice_data = invoice_data;
return View();
}
我正在尝试通过以下方式访问,但它不起作用
@((ViewBag.invoice_data as List<PMS.Models.Invoice>).First().InvoiceID)
下面是错误
我的 Chtml 页面
@{
ViewBag.Title = "View Invoice";
ViewBag.MainTitle = "View Invoice";
}
<section class="invoice">
@((ViewBag.invoice_data as List<PMS.Models.Invoice>).First().InvoiceID)
</section>
解决方案
在您的控制器代码中
(sp, st) => new { sp.PStatusName,
这是一个匿名类型,因此as
(在视图中)失败并返回 null
尝试
(sp, st) => new PMS.Models.Invoice { sp.PStatusName,
顺便说一句:使用强类型视图会更安全。
推荐阅读
- python - 根据日期信息重塑熊猫数据框
- mongodb - 无法在 mongodb 中启用分片
- c - 在声明中使用 sizeof
- ios - EPSignature Swift 5.x 问题/每次我想保存我的签名时应用程序崩溃
- c# - 如何交换 2 位数字并找到较大的结果?
- android - 向 Realme 和 Oppo 发送短信
- search - 在图形数据库(neo4j)中搜索用户,其中单个用户可以有多个(相似而不是重复)实例
- vaadin8 - Vaadin Charts Addon 4.0.0 API - 需要将闪烁的图像或 CSS 添加到数据系列
- browser - 等待 fetch.body ReadableStream 完成
- php - 轮播图像正在堆叠,如何阻止它们堆叠?