c# - 使用视图模型获取 linq 值以正确显示在视图中的问题
问题描述
我正在尝试通过视图模型在视图中显示从 linq 查询中检索到的数据。我为 linq 查询设置了一个变量,然后在视图模型中的表实例中引用它。如果我放弃视图模型并在返回视图中返回变量,我会得到我想要的数据。当我尝试使用视图模型时,当我引用 linq 查询变量时,我被迫调用 ToString,而不是我想要的结果数据,我得到了这个 TRAIntranet2019.Models.TblShiftInfo,这是我正在查询的表。我正在为视图模型(使用视图模型时)或常规模型(仅使用 linq 变量时)更改视图顶部的模型引用。Shift target 是我正在处理的当前示例。
private TRAKERContext db = new TRAKERContext();
// GET: LandingPageVMs
public IActionResult Index()
{
var shiftTarget = db.TblShiftInfo.FirstOrDefault();
//var rvuvalue = db.Tradetail.FirstOrDefault().ToString();
TblShiftByRadByDate tblShiftByRadByDate = new TblShiftByRadByDate()
{
//ShiftName = "Late Night Shift"
};
Tradetail tradetail = new Tradetail()
{
//Rvuvalue = (double)rvuvalue
//SignLastName = rvuvalue.ToString()
};
TblShiftInfo tblShiftInfo = new TblShiftInfo()
{
//ShiftAvgTarget = Convert.ToDouble(shiftTarget),
Shift_Name = shiftTarget.ToString()
};
RadidCrosswalk radidCrosswalk = new RadidCrosswalk()
{
RadFname = "Jimmie"
};
FacilityCrosswalk facilityCrosswalk = new FacilityCrosswalk()
{
FacilityName = "TRA"
};
LandingPageVM vm = new LandingPageVM()
{
TblShiftByRadByDate = tblShiftByRadByDate,
Tradetail = tradetail,
TblShiftInfo = tblShiftInfo,
RadidCrosswalk = radidCrosswalk,
FacilityCrosswalk = facilityCrosswalk
};
return View(vm);
}
预期输出 = “班次名称”
实际输出 = "TRAIntranet2019.Models.TblShiftInfo"
解决方案
我不明白这个问题,但试图弄清楚......
- 使用视图模型:
控制器上的动作:
public IActionResult About()
{
TblShiftInfo tblShiftInfo = new TblShiftInfo()
{
Shift_Name = "Shift Name Example",
ShiftAvgTarget = 12345
};
LandingPageVM vm = new LandingPageVM()
{
TblShiftInfo = tblShiftInfo,
};
return View(vm);
}
风景:
@model MyWevApp2.Models.LandingPageVM
<h2>Data in ViewModel</h2>
<p>@Model.TblShiftInfo.Shift_Name</p>
<p>@Model.TblShiftInfo.ShiftAvgTarget</p>
- 使用 ViewBag 或 ViewData。
如果您不想使用 ViewModel... 您可以使用 ViewBag 或 ViewData。例如:
控制器:
public IActionResult Contact()
{
TblShiftInfo tblShiftInfo = new TblShiftInfo()
{
Shift_Name = "Shift Name Example",
ShiftAvgTarget = 12345
};
ViewBag.TblShiftInfo = tblShiftInfo;
return View();
}
在视图中,您可以使用 ViewBag:
<p>@ViewBag.TblShiftInfo.Shift_Name</p>
希望能帮助到你!
推荐阅读
- django - Django:复选框 Onclick 事件
- node.js - 如何等待带有嵌套 foreach 循环的 Async/Await 完成
- nim-lang - 如何从 nim 表中获取可修改的值
- c++ - u 后缀和无符号修饰符之间的真正区别是什么?
- python - Python - 以类似格式抓取数据
- java - 关于继承层次结构的 Java getMethods()
- android - Firebase 错误。请确保您的 Firebase 名称拼写正确
- javascript - 嵌套 JSON 文件中的值
- javascript - Firebase 部署到另一个站点
- delphi - GetThreadLocale 与 Delphi 中的语言环境覆盖键不一致