我在使用EF5的MVC 4 Web应用程序中使用Database-First方法。我在上下文中有以下表格:
**Employee** <br>
EmpId <br>
StatusId
Employee表的一行是:
EmpId=1<br>
StatusId=1
选项
OptionId<br>
OptionListName<br>
OptionName<br>
OptionValue<br>
选项表的一行如下:
OptionId=1
OptionListName="Status"
OptionName="Active"
OptionValue=1
我为EmployeeController创建了一个视图,该视图显示了Employee表中的一些字段,如下所示:
Employee
-----------
EmpId StatusId
1 1
但是我需要按如下方式查看表格:
Employee
-----------
EmpId Status
1 Active
我怎样才能在MVC中执行此操作?
答案 0 :(得分:0)
您需要一个IEnumerable<Employee>
的View模型,如果您只有一个选项,则需要Options
。 Viewmodel将如下所示:
public class YourNamedViewModel
{
public IEnumerable<Employee> Employees { get; set; }
public Options Options { get; set; }
}
然后在您的视图中将模型更改为
@using PathTo.ViewModel
@model YourNamedViewModel
<table>
<tr>
<th>
@Html.LabelFor(m => m.Employees.EmpId)
</th>
<th>
@Html.LabelFor(m => m.Options.OptionListName)
</th>
</tr>
@foreach (var item in Model.Employees)
{
<tr>
<td>
item.EmpId
</td>
@if (item.StatusId == 1)
{
<td>
<span>@Model.Options.OptionName</span>
</td>
}
else
{
<td>
<span>Inactive</span>
</td>
}
</tr>
}
</table>
如果您有任何其他状态模式,则需要在View模型中使用IEnumerable<Options>
,并找到与Employee具有相同OptionId的相应选项。
无法测试,但它应该可以正常工作。