У меня есть пользовательский элемент управления, который создает новую запись в базе данных.
Нет, это не так.Он просто отображает HTML, и ничего больше.
Это действие контроллера, которое создает новую запись в базе данных, и, следовательно, именно здесь должно произойти перенаправление.
Действие [HttpPost] , которое принимает модель/ форма должна выполнить перенаправление после завершения сохранения.
Например:
public ActionResult Save(SomeModel model)
{
db.Save(model);
return RedirectToAction("Index");
}
Я предполагаю, что «представление», которое вы хотите обновить, - это одна и та же страница, независимо отна какой странице был обработан пользовательский контроллер, поэтому приведенный выше код вполне подходит.
В примечании не следует использовать пользовательские элементы управления (например, частичные) для визуализации форм.
Выследует использовать редактор шаблонов .Код представления, который отображает форму (и указывает, какое действие следует публиковать) должен быть в представлении, а не в пользовательском элементе управления.
EDIT - пример того, как визуализировать форму в представлениях:
Вместо того, чтобы делать это в представлении:
@Html.Partial("_SomeModel")
Сделайте это:
@using (Html.BeginForm()) {
@Html.EditorFor(model => model.SomeModel)
}
И поместите разметку формы в шаблон редактора.Ключевым моментом здесь является то, что за настройку формы должны отвечать IMO, а не пользовательский элемент управления.