изменение представления mvc 2 вызывает проблемы при передаче сообщения - PullRequest
0 голосов
/ 25 декабря 2009

У меня есть контроллер со следующими действиями:

public ActionResult Create()
{
    return View(new MyModel());
}

[HttpPost]
public ActionResult Create(MyModel model)
{
    //Update database
    ...
    //Pass the current model so we don't have to load it from the database
    return View("Details", model);
}

[HttpPost]
public ActionResult Details(MyModel model)
{
}

На моей странице create.aspx и Details.aspx есть кнопка отправки. Отправка на странице create.aspx приведет к вставке записи в базу данных, а затем она перейдет в представление сведений. Эта часть работает нормально, я могу нажать кнопку отправки, запись будет вставлена ​​и перейдет в представление сведений для этой записи. Теперь, если я нажму «Отправить» в подробном представлении, все равно будет вызван «Создать» (модель MyModel). Разве метод Details (модель MyModel) не должен вызываться?

В методе создания записи я хочу перейти в представление сведений и передать текущую модель, чтобы не приходилось перезагружать эти данные из базы данных.

1 Ответ

1 голос
/ 25 декабря 2009

в вашем представлении информации измените Html.BeginForm на

<%= Html.BeginForm("Action","Contoller", new{}) %>

Когда вы возвращаете представление «Подробности» в действии «Создать», Framework не угадает ваше намерение. В результате он отображает представление «Подробности», но все еще считает, что это действие Create, а вспомогательный метод Html.BeginForm () отправляет сообщение обратно в то же действие.

...