0

私は mvc 4 を使用し、Web アプリケーションをより動的にしようとしています。現時点では、一部のビューを部分ビューに分割して、コードが読みやすくなり、アプリケーションの一部を再利用できるようにしています。だから今、これは私を問題に導きます。私はこれに似たビューを持っています:

<h1>Manage department</h1>
<div id="EmployeesManagement">@Html.Action("OpenEmployeesManagement")</div>
<div id="DepartmentManagement">@Html.Action("OpenDepartmentManagement")</div>
<div id="DepartmentTumorModels">@Html.Action("OpenDepartmentModels")</div>

これらはそれぞれ、次のようなコントローラーから呼び出される部分ビューです。

public PartialViewResult OpenDepartmentModels()
{
    ViewBag.ChangeVisibility = -1;
    HoDManagementModel hoDManagementModel = new HoDManagementModel { UserWithRoleModelList = azaraUserManagement.GetAllEmployesOfHoD(user.getUserId()), OrganisationUnits = azaraUserManagement.GetAllOrganisationUnitsFromHoD(user.getUserId()) };
    List<ModelWithOrganisationUnit> Models = ModelManagement.SearchModelsOfDepartment(hoDManagementModel.OrganisationUnits);
    return PartialView("DepartmentModels", Models);
}

今私の問題に。私はこのような部分的なビューを持っています:

@model List<Modelle.Models.BusinessTierObjects.Models.ModelWithOrganisationUnit>
<fieldset>
    <legend>Manage the models of your department</legend>
        <table class="tablesorter">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Name </th>
                    <th>Department </th>
                    <th>Visibility</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in @Model)
                {
                    <tr>
                        <td>@item.ModelId</td>
                        <td>@Html.ActionLink((String)item.ModelName, "Details", "Details", new { id = item.ModelId }, null)</td>
                        <td>@item.OrganisationUnitName</td>
                        @if (ViewBag.ChangeVisibility == item.ModelId)
                        {
                        <td><select name="ChangeVisibility" id="ChangeVisibility">
                        <option value="Department" onclick="location.href='@Url.Action("ChangeVisibility", "ManageDepartment", new {tumorModelId = item.ModelId, Visibility = 0})'">Department</option>
                       option value="Coop" onclick="location.href='@Url.Action("ChangeVisibility", "ManageDepartment", new { ModelId = item.ModelId, Visibility = 2 })'">Coop</option>
                        <option value="WWW" onclick="location.href='@Url.Action("ChangeVisibility", "ManageDepartment", new { ModelId = item.ModelId, Visibility = 3 })'">WWW</option>
</select></td>
                        }
                        else{
                            switch ((byte)item.Visibility)
                            {
                                case 0: <td>Department</td>; break;
                                case 2: <td>Coop</td>; break;
                                case 3: <td>WWW</td>; break;
                            }
                        }
                        <td><button name="button" class="button" onclick="location.href='@Url.Action("RequestChangeVisibility", "ManageDepartment", new { change = @item.ModelId })'">Change Visibility</button>
</td>
                    </tr>}
</fieldset>

最後のボタンをクリックすると、部分ビューだけが再ロードされます。しかし、代わりに、アプリケーションはブラウザーにレイアウトのない部分的なビューのみを表示します。私は何を間違えましたか、それとも私の問題を解決することはできませんか? ボタンからのコントローラ アクションは次のとおりです。

public PartialViewResult RequestChangeVisibility(int change)
        {
            ViewBag.ChangeVisibility = change;
            HoDManagementModel hoDManagementModel = new HoDManagementModel { UserWithRoleModelList = azaraUserManagement.GetAllEmployesOfHoD(user.getUserId()), OrganisationUnits = azaraUserManagement.GetAllOrganisationUnitsFromHoD(user.getUserId()) };
            List<ModelWithOrganisationUnit>  Models = ModelManagement.SearchModelsOfDepartment(hoDManagementModel.OrganisationUnits);
            return PartialView("DepartmentModels", Models);
        }
4

1 に答える 1