0

我无法仅在一个视图中显示 Web 网格包含和插入数据表单

我创建了一个应用程序,index.cshtml我在其中显示所有员工详细信息。

index.cshtml

<div>
WebGrid Control
<br /><br />
@Html.Partial("_WebGridPartial")
</div>

我在其中创建了显示数据的局部视图。

现在我创建了另一个视图Create.cshtml,它获取员工详细信息并保存到数据库中。

但是,如果我想同时显示两者gridcreate employee form那么我该如何使用它呢?因为问题是当我显示它正在使用的数据时,它@model IEnumerable<MvcGrid.Models.EmpData> 的类型是 IEnumerable 并且在Create View我需要使用的输入字段内部,@model MvcGrid.Models.EmpData并且只能使用一个模型语句。

4

1 回答 1

1

您可以传递index.cshtml包含您的网格数据和员工的 ViewModel 的 ViewModel。

例如

public class EmployeesViewModel
{
    public IEnumerable<EmployeeViewModel> employeesForGrid { get; set; }
    public EmployeeViewModel employeeForEdit { get; set; }
}

在您的控制器中...

public ViewResult Index()
{
    IEnumerable<Employee> employees = _employeeRepo.GetEmployees();
    IEnumerable<EmployeeViewModel> employeesForGrid = MapEmployeesForView(employees);

    var model = new EmployeesViewModel()
    {
        employeesForGrid = employeesForGrid,
        employeeForEdit = new EmployeeViewModel(); 
    };

    return View(model);
}

然后index.cshtml

@model EmployeesViewModel

@{Html.RenderPartial("_WebGridPartial", Model.employeesForGrid);}
<br/><br/>
@{Html.RenderPartial("_Create", Model.employeeForEdit);}
于 2012-04-05T18:30:36.430 回答