Перенаправление на действие с методом Post в MVC

2

У меня есть две кнопки отправки в форме, одна для поиска записей, соответствующих имени, вторая - для обновления этой записи в БД после выполнения коррекции, если это необходимо.

Три действия в контроллере

  1. Редактировать с помощью HttpGet - при отображении первого отображения времени он загружает все имя из базы данных в выпадающий список
  2. Редактировать с помощью HttpPost Когда мы нажимаем на поиск, он получает каждую деталь этого имени
  3. EditPerson HttpPost Когда мы нажимаем "Редактировать запись". HttpPost все данные обратно в БД.

В коде я хочу сделать это

public ActionResult EditOperation(string Command, DataLayer objmodel)
{
    if (Command == "Search")
    {
        return RedirectToAction(Edit with Post method) // How to ? always going to Edit With get method
    }
    else if (Command == "Edit Record")
    {
        return RedirectToAction(EditPerson) //Easy to redirect but How to send Model object also ?
    }
    return View("Edit",objmodel);
}
RedirectToAction (String ActionName, String ControllerName , Object routeValues)

Есть ли способ рассказать об уступчике, который перенаправляет действие "Редактировать действие", но тот, у кого есть метод "Пост", а не "Получить"?
Примечание. Не используйте Javascript здесь, только чистый код С#

  • 0
    Вы можете аннотировать действие для принятия только глаголов поста, т.е. [HttpPost], в одной форме будет только одна отправка, мне интересно, как вы используете две отправки?
  • 0
    Вы хотите иметь 2 кнопки отправки в форме? Если это правда, что это не имеет смысла, форма должна только POST для метода действия. Но вы можете изменить метод Edit включив в него подпрограмму (ы) сохранения записи, в зависимости от скрытого поля или других значений поля, предоставленных при отправке пользователем запроса POST.
Показать ещё 4 комментария
Теги:
asp.net-mvc

1 ответ

2
Лучший ответ

При переадресации всегда используется get, попробуйте вернуть представление "Изменить", передав модель, которую вы хотите использовать:

public ActionResult Edit(){

....retrieve Model

return View(MyModel); // default view : Edit

}

[HttpPost]

public ActionResult Edit(MyModel){

....do things with MyModel

return View("OtherView", MyModel);

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню