Проблема
У меня есть Telerik TabControl, и каждая вкладка представляет собой частичное представление.Все работает гладко, когда запрос GET:
//
// GET: /ProductVersion/Translations
public ActionResult Translations(Guid id)
{
VersionEditTabViewModel model = CreateTranslationsViewModel(id);
return PartialView("Translations", model);
}
Теперь проблема в том, что на некоторых вкладках у меня есть форма, которая имеет элементы управления, которые вызывают событие отправки.
[HttpPost]
public ActionResult Translations(Guid id)
{
FormCollection formCollection = new FormCollection(Request.Form);
string message = string.Empty;
int languageId = int.Parse(formCollection["TranslationsLanguageList"]);
string action = formCollection["TranslationAction"];
if(action == Constants.translation_save)
{
_translationModel.SaveTranslations(formCollection);
message = "Translation information saved";
}
else if (action == Constants.translation_language_changed)
{
/*
PROBLEM: causes whole page to render, not partial
*/
return PartialView("Translations", model);
}
return RedirectToAction( ... updates the complete page not only partial ...);
}
Мой вопрос:как сделать частичное из метода POST?Потому что теперь с этой вкладкой исходного кода содержимое будет загружено на ВЕСЬ страницу, а не внутри вкладки.
Решение
Мне пришлось поместить DIV вне Ajax.Form, а также у меня была неверная отправкав моем DropDownList.Я создал скрытую кнопку отправки с идентификатором Id, а затем использовал jQuery для запуска события click.