0

我是 mvc 的新手。我已经使用 Winforms 进行了相当多的开发,现在我正在开发一个 MVC 项目。在我们的 winforms 项目中,我们有标准控件,例如显示所有员工的下拉列表控件。该控件知道如何获取员工并显示他们。它公开了一个属性,该属性提供了选定的员工。表单只需要把这个控件放在上面并使用它。

现在我的问题是如何在 aps.net MVC 中实现这一点(在视图中)。我尝试了部分视图,但是如何将所选值公开给父视图

4

3 回答 3

1

在 MVC 中,Views不应包含除显示逻辑之外的任何逻辑。

Controller应该是“知道如何获取员工”或创建一个员工,Model然后将其传递给View知道如何显示员工的人,在大多数情况下,它将是严格类型View的 type Employee

于 2013-04-16T11:45:25.113 回答
1

我认为这就是您要实现的目标:

说,在您的模型中,您有一个 Employee(或列表,或列表):

Employee Employee { get; set; }

所以,你的主视图应该有这个:

@Html.DisplayFor(Model => Model.Employee);

但是,你问我怎么做模板呢?

在这个阶段你应该退后一步,考虑制作一个新的 ViewModel,一个 EmployeeViewModel(在你看来,这应该是你的“局部视图”)。

所以现在你将拥有:

EmployeeViewModel Employee { get; set; }

现在,在 Views/Shared 中创建一个名为 DisplayTemplates 的文件夹并创建 EmployeeViewModel.cshtml。需要明确的是,您现在将拥有 / Views/Shared/DisplayTemplates/EmployeeViewModel.cshtml

最上面一行应该是:

@model YourNamespace.EmployeeViewModel

现在您可以简单地在此视图中使用:

@Html.LabelFor(model => model.EmployeeName) // or whatever properties you have

这应该足以让你开始。

于 2013-04-16T11:55:14.087 回答
0

PartialView 对你来说很好。所以通过关键字'PartialView'搜索一些内容

于 2014-12-30T07:58:10.273 回答