我正在寻找一种基于Placement_Position
和Region
在不同的视图中动态显示图像的方法。
Placement
视图,其中显示表中的所有内容。
这些视图之间没有链接。
我很困惑如何实现此方案。有人请在这里帮助我。
在Employee
视图中,如果区域是Atop_1
,我想显示图像1
,如果区域是Atop_2
,我想显示2
public class ClsPlacement
{
public int Id { get; set; }
public string Placement_Position { get; set; }
public string Path { get; set; }
public int Region { get; set; }
}
控制器
public ActionResult Placement()
{
var model = context.Placement.ToList();
return View(model);
}
展示位置视图
<table>
<tr>
<th>
@Html.DisplayNameFor(m => m.Id)
</th>
<th>
@Html.DisplayNameFor(m => m.Placement_Position)
</th>
<th>
@Html.DisplayNameFor(m => m.Region)
</th>
<th>
@Html.DisplayNameFor(m => m.Path)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
@Html.DisplayFor(modelItem => item.Id)
<td>
@Html.DisplayFor(modelItem => item.Placement_Position)
</td>
<td>
@Html.DisplayFor(modelItem => item.Region)
</td>
<td>
@Html.Image(item.Path, "Image")
</td>
</tr>
}
</table>
答案 0 :(得分:1)
您可以使用 LINQ 为每个控制器编写查询并返回IList
:
在 Employee 视图中如此:
public ActionResult Employee()
{
IList<ClsPlacement> plcList = new List<ClsPlacement>();
var query= from m in context.Placement
select m;
var plc= query.ToList();
foreach(var plcData in plc)
{
if(plcData.Placement_Position=="A_Top")
{
plcList.Add(new ClsPlacement()
{
Id= plcData.Id,
Placement_Position= plcData.Placement_Position,
Path = plcData.Path ,
Region= plcData.Region
});
}
}
return View(plcList);
}
然后在您的视图中可以这样写:
@foreach (var item in Model)
{
<div class="col-md-5">
<img src="@Url.Content(String.Format("~/Content/Place/{0}{1}{2}", "Atop_",item.Region,".jpg"))" />
</div>
}
,对于客户视图也是如此。