[英]How to pass variable list in ViewBag
I am working on a project I just need to grab data from two tables and I want to use LINQ Query to fetch data. 我正在开发一个项目,我只需要从两个表中获取数据,我想使用LINQ Query来获取数据。
Inside my 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;
And I want to use this Parameters in my razor as: 我想在剃须刀中使用这个参数:
@foreach (var item in ViewBag.Parameters)
{
<option value="@item.ParameterId">@item.ParameterName - @item.TestName</option>
}
It is currently giving me error that object as no definition for ParameterId. 它目前给我错误,该对象没有ParameterId的定义。 Although I have tried debugging and item is getting values as well but I am not sure how to display them, 虽然我已经尝试过调试,但是item也获得了值,但我不知道如何显示它们,
Here is screen shot of values I am getting Values in item variable: 以下是我在项目变量中获取值的屏幕截图:
Also Here is Screen shot of the error: 这里是错误的屏幕截图:
You are using an anonymous type. 您使用的是匿名类型。 It wouldn't work in this case. 在这种情况下它不起作用。 Either use a known type or dynamic. 使用已知类型或动态。 ie: 即:
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;}
}
In view: 在视图中:
@foreach (ParamsClass item in ViewBag.Parameters)
{
<option value="@item.ParameterId">@item.ParameterName - @item.TestName</option>
}
You can make a new class in your controller: 您可以在控制器中创建一个新类:
public class Params
{
public int ParameterId {get; set;}
public string ParameterName {get; set;}
public string TestName {get; set;}
}
In View You can use it like this 在视图中您可以像这样使用它
@{
var items = (Params)ViewBag.Parameters;
}
@foreach(var item in items){
your code for html....
}
{
public int ID{get; set;}
public string Name{get; set;}
}
Use this syntax in your CSHTML: 在CSHTML中使用此语法:
@{
var items = (Params)ViewBag.Parameters;
}
@foreach(var item in items){
//body
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.