ASP.NET MVC 4 Html.BeginForm в частичном представлении, значения после записи не верно
Главная страница -> Раздел 1 (есть несколько выпадающих меню и кнопка сохранения)
@{Html.RenderPartial("_Section1", Model.Section1);}
@{Html.RenderPartial("_Section2", Model.Section2);}
@{Html.RenderPartial("_SubSection2", Model.SubSection2);}
Содержимое раздела 1 помещено в частичное представление с @ Html.BeginForm. и отображается на главном экране с использованием @ 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)
Modules
@Html.DropDownListFor(m => m.SubmittedModules, new MultiSelectList(Model.AvailableModules, "ModuleID", "ModuleName", Model.SelectedModules.Select(m => m.ModuleID)),
new { multiple = "multiple", @class = "multiselectb" })
@foreach (Module b in @Model.SelectedModules)
{
@b.ModuleName
}
}
Когда я нажимаю кнопку сохранения в частичном представлении, оно должно обновлять свое собственное содержимое, а также обновляется другое частичное представление. SubSection2.
В методе действия я возвращаю новые значения, а для второго частичного обновления представления я создаю функцию отправки ajax, где я выполняю действие # secondpartialview.load:
[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 представить:
$("#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;
});
Проблема в том, что отладчик показывает мне обновленные значения для selectedModules в методе действия, но НЕ в пользовательском интерфейсе.
Что мне не хватает?