.net - 如何在 ViewBag 中传递变量列表

标签 .net asp.net-mvc linq viewbag

我正在做一个项目,我只需要从两个表中获取数据,我想使用 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。 虽然我已经尝试调试并且项目也正在获取值,但我不确定如何显示它们,

这是我得到的值的屏幕截图 项目变量中的值:
Values in item variable

还有错误的截图:

Error

最佳答案

您正在使用匿名类型。在这种情况下是行不通的。使用已知类型或动态类型。即:

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/

相关文章:

c# - 为什么在尝试使用仅具有字符串属性的非常简单的类型构造 XmlSerializer 时会收到 NullReferenceException?

c# - 为 UNITTESTS 构建配置公开方法

javascript - 菜单在 IE 中的行为不同

asp.net-mvc - 分页助手 asp.net mvc

c# - WPF WebBrowser 控件的 64 位替代方案

c# - 如何使用 Linq-2-Sql 将域逻辑与数据库/持久性逻辑分开?

asp.net - 防止运行时程序集绑定(bind)到旧程序集

c# - 计算数组中的元素-性能-

c# - 如何创建返回 bool 值的 Lambda 表达式的 C# 反射

c# - XElement.Root.Element 不断返回 null