我需要将WinForm应用程序转换为MVC应用程序。我只需要用新的MVC项目替换客户端。在旧的应用程序中,他们使用不同的项目来分隔各种布局,所有数据都通过DTO传输。现在,在我的MVC项目中,我可以访问控制器中的DTO并输入ViewData,但我不知道如何在视图中使用它,Visual Studio告诉我它不知道它的类型DTO。在下图中,AllDevice是控制器中创建的Device.Dto列表 Image of the error
这是我的控制器:
private CallServer cs = new CallServer();
// GET: DeviceManager
public ActionResult GetAllDevice()
{
List<DeviceDto> AllDevice = new List<DeviceDto>();
AllDevice = cs.GetAllDevice();
ViewData["AllDevice"] = AllDevice;
return View();
}
以下是我的观点:
<body>
<h2>GetAllDevice</h2>
<table>
<tr>
<th>
Nom de la machine
</th>
</tr>
@foreach (var device in (DeviceDto)ViewData["AllDevice"])
</table>
感谢您的帮助。
答案 0 :(得分:0)
你不应该把它放在ViewData
中,而是让它键入&#34; Model&#34;对于视图。
ViewData["AllDevice"] = AllDevice;
行return View();
更新为return View(AllDevice);
View.cshtml
文件的第一行添加:@model MyFull.Namespace.AllDevice
(当然,使其成为正确的命名空间)@foreach (var device in Model) ...