我是 mvc 的新手。我已经使用 Winforms 进行了相当多的开发,现在我正在开发一个 MVC 项目。在我们的 winforms 项目中,我们有标准控件,例如显示所有员工的下拉列表控件。该控件知道如何获取员工并显示他们。它公开了一个属性,该属性提供了选定的员工。表单只需要把这个控件放在上面并使用它。
现在我的问题是如何在 aps.net MVC 中实现这一点(在视图中)。我尝试了部分视图,但是如何将所选值公开给父视图
我是 mvc 的新手。我已经使用 Winforms 进行了相当多的开发,现在我正在开发一个 MVC 项目。在我们的 winforms 项目中,我们有标准控件,例如显示所有员工的下拉列表控件。该控件知道如何获取员工并显示他们。它公开了一个属性,该属性提供了选定的员工。表单只需要把这个控件放在上面并使用它。
现在我的问题是如何在 aps.net MVC 中实现这一点(在视图中)。我尝试了部分视图,但是如何将所选值公开给父视图
在 MVC 中,Views
不应包含除显示逻辑之外的任何逻辑。
Controller
应该是“知道如何获取员工”或创建一个员工,Model
然后将其传递给View
知道如何显示员工的人,在大多数情况下,它将是严格类型View
的 type Employee
。
我认为这就是您要实现的目标:
说,在您的模型中,您有一个 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
这应该足以让你开始。
PartialView 对你来说很好。所以通过关键字'PartialView'搜索一些内容