ASP.NET MVC 4 Html.BeginForm en Vue Partielle , les valeurs après le post n'est pas le droit

Page Principale
-> Section 1 (a certaines listes déroulantes et un bouton "enregistrer")

        <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>

La section 1 contenu est placé dans une vue partielle avec @Html.BeginForm en elle.
et le rendu sur l'écran principal à l'aide de @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>
}

Quand je clique sur le bouton enregistrer dans la vue partielle, il doit mettre à jour ses propres contenus, ainsi que d'autres vue partielle SubSection2 doit être actualisé.

Dans la méthode de l'action, je retourne les nouvelles valeurs, et pour la deuxième vue partielle mise à jour, j'ai créer une requête ajax soumettre fonction d'où je ne l' #secondpartialview.charge
Action:

[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 soumettre:

$("#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;
    });

La question est: le DÉBOGUEUR me montre les valeurs mises à jour pour selectedModules dans la méthode d'action, mais PAS sur l'INTERFACE utilisateur.

Ce qui me manque?

  • Pouvez-vous poster le HTML, le JavaScript et le code de la méthode d'action?
  • Posté code bits
  • Vous chargez le résultat dans un élément avec l'id 'subSection2', est-ce quelque chose qui est défini dans le _SubSection2 partielle?
  • Correct. Et il est rendu parfaitement.Problème avec l'SelectedModules de ne pas être mis à jour dans l'INTERFACE utilisateur de section1, tout en accordant aux valeurs correctes pendant le débogage.
  • Je ne peux pas voir tout ce qui pourrait mettre à jour la section 1, à l'exception de la soumission d'un formulaire qui serait la cause de toute la page se recharge. J'ai toujours consulter ce lien pour le rechargement des groupes d'experts indépendants via AJAX: codeproject.com/Articles/460893/...
InformationsquelleAutor user2412146 | 2013-11-12