我正在做一个项目,我只需要从两个表中获取数据,我想使用 LINQ Query 来获取数据。
在我的 Controller 中:
var Parameters = (from test in _db.tblAddTests
join par in _db.tblParameters on test.AddTestId equals
par.TestId
where par.ParameterDatatype == 3
select new
{
ParameterId = par.ParameterId,
ParameterName = par.ParameterName,
TestName = test.TestName
}
).ToList();
ViewBag.Parameters = Parameters;
我想在我的 Razor 中使用这个参数:
@foreach (var item in ViewBag.Parameters)
{
<option value="@item.ParameterId">@item.ParameterName - @item.TestName</option>
}
它目前给我的错误是该对象没有定义 ParameterId。 虽然我已经尝试调试并且项目也正在获取值,但我不确定如何显示它们,
还有错误的截图:
最佳答案
您正在使用匿名类型。在这种情况下是行不通的。使用已知类型或动态类型。即:
var Parameters = (from test in _db.tblAddTests
join par in _db.tblParameters on test.AddTestId equals
par.TestId
where par.ParameterDatatype == 3
select new ParamsClass
{
ParameterId = par.ParameterId,
ParameterName = par.ParameterName,
TestName = test.TestName
}
).ToList();
ViewBag.Parameters = Parameters;
public class ParamsClass
{
public int ParameterId {get; set;}
public string ParameterName {get; set;}
public string TestName {get; set;}
}
在 View 中:
@foreach (ParamsClass item in ViewBag.Parameters)
{
<option value="@item.ParameterId">@item.ParameterName - @item.TestName</option>
}
关于.net - 如何在 ViewBag 中传递变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51171162/