【发布时间】:2018-07-04 10:12:08
【问题描述】:
我正在做一个项目,我只需要从两个表中获取数据,并且我想使用 LINQ Query 来获取数据。
在我的控制器内部:
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;
我想在我的剃须刀中使用这个参数:
@foreach (var item in ViewBag.Parameters)
{
<option value="@item.ParameterId">@item.ParameterName - @item.TestName</option>
}
当前给我的错误是该对象没有定义 ParameterId。 虽然我已经尝试过调试并且项目也正在获取值,但我不确定如何显示它们,
这里是错误的屏幕截图:
【问题讨论】:
-
简单的类型转换怎么样?
-
我试图像这样在 ArrayList 中转换它 @{ var list = ViewBag.Parameters as ArrayList; }
-
您的代码是一个非常糟糕的主意 - 没有强类型模型绑定,没有客户端验证,所选项目,如果返回视图等将丢失等。使用
@Html.DropDownListFor()方法生成你的<select>并将IEnumerable<SelectListItem>传递给视图 -
感谢斯蒂芬的建议,但我根本不想使用它,因为这只是一个示例,我稍后必须使用多个模型,所以它们会给我带来麻烦:p
标签: .net asp.net-mvc linq viewbag