ASP.NET MVC 4 Html.BeginForm in Teilansicht , Werte nach post nicht richtig

Hauptseite
-> Kapitel 1 (einige dropdowns und einen speichern-button)

        <div id="tab-section1">
            @{Html.RenderPartial("_Section1", Model.Section1);}
        </div>
        <div id="tab-section2">
            <div id="section2">
                @{Html.RenderPartial("_Section2", Model.Section2);}
            </div>
            @{Html.RenderPartial("_SubSection2", Model.SubSection2);}
        </div>

Abschnitt 1 Inhalt befinden sich in einer Teilansicht mit @Html.BeginForm in es.
und machte auf die Haupt-Ansicht mit @Html.RenderPartial

@using MyData
@model Section1ViewModel
@using(Html.BeginForm("EditSection1", "Project", FormMethod.Post, new { id = "section1-form", name = "section-form" }))
{
    @Html.HiddenFor(model => model.ProjectID)
 <table id="modules">
        <tr>
            <td class="bold" colspan="2">Modules
            </td>
        </tr>
        <tr>
            <td>
                @Html.DropDownListFor(m => m.SubmittedModules, new MultiSelectList(Model.AvailableModules, "ModuleID", "ModuleName", Model.SelectedModules.Select(m => m.ModuleID)),
                new { multiple = "multiple", @class = "multiselectb" })
            </td>
            <td>
                <input type="button" id="btnAddModule" value=" + " />
            </td>
        </tr>

        @foreach (Module b in @Model.SelectedModules)
        {
            <tr>
                <td colspan="2">
                    @b.ModuleName
                </td>
            </tr>
        }
   </table>
}

Wenn ich auf die Schaltfläche "speichern" in Teilansicht, sollte es aktualisieren dabei Ihre eigenen Inhalte sowie andere Teilansicht SubSection2, der aktualisiert werden soll.

In der action-Methode, kehre ich die neuen Werte, und für die zweiten partiellen view updation, ich erstellen Sie eine ajax-submit-Funktion, wo ich die #secondpartialview.laden
Aktion:

[HttpPost]
        public ActionResult EditSection1(Section1ViewModel viewModel)
        {
            Section1Data section1Data = new Section1Data(_UnitOfWork);
            //save changes
            section1Data.SaveSection1(viewModel);

            viewModel = section1Data.GetSection1ViewModel(viewModel.ProjectID);
            return PartialView("_Section1", viewModel);
        }

Ajax-submit:

$("#section1-form").submit(function () {

        $("#section1-saving").html("<img src='../../Images/ajax-loader.gif' />");

        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function (result) {
                $("#section1-saving").html("Saved!");
                $.ajaxSettings.cache = false;

                //Refresh the sub section 2 on the Section 2 tab
                $("#subSection2").load('../../Projects/subSection2/' + $("#ProjectID").val());
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $("#section1-saving").html("Error: " + textStatus + " " + errorThrown);
            }
        });
        return false;
    });

Das Problem: der DEBUGGER zeigt mir die aktualisierten Werte für selectedModules in Aktion-Methode, aber NICHT auf der UI.

Was bin ich?

  • Kannst du die HTML -, JavaScript-und action-Methode code?
  • Gepostet relevanten code-bits
  • Sie laden das Ergebnis in das element mit der id 'subSection2', ist das etwas, das definiert ist in der _SubSection2 teilweise?
  • Richtig. Und es ist unverfälscht dargestellt.Problem ist mit der SelectedModules nicht aktualisiert werden, in der Benutzeroberfläche von Abs.1, während es gibt richtige Werte während des Debuggens.
  • Ich kann nichts sehen, das würde zu aktualisieren, Abschnitt 1, mit Ausnahme einer form einzureichen, die dazu führen, dass die ganze Seite neu zu laden. Ich Verweise immer wieder auf diesen link zum nachladen unabhängige panels via AJAX: codeproject.com/Articles/460893/...
InformationsquelleAutor user2412146 | 2013-11-12
Schreibe einen Kommentar