0

1つのビューでのみデータフォームを含むWebグリッドを表示して挿入することができません

index.cshtmlすべての従業員の詳細を表示するアプリケーションを作成しました。

index.cshtml

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

データを表示する部分ビューを作成しました。

Create.cshtmlこれで、従業員の詳細を取得してデータベースに保存するという別のビューを作成しました。

gridしかし、両方を表示したい場合、どうすればcreate employee form使用できますか?問題は、@model IEnumerable<MvcGrid.Models.EmpData> IEnumerable型でCreate View、入力フィールドの内部で使用しているデータを表示するときに使用する必要があり、使用@model MvcGrid.Models.EmpDataできるモデルステートメントは1つだけです。

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 に答える