Редактировать / просмотреть / сохранить сценарий в mvc - PullRequest
1 голос
/ 16 февраля 2010

Я ищу чистый подход по сценарию " Редактировать / просмотреть / сохранить " в asp.net mvc:

Наши клиенты могут " редактировать " информацию о своих счетах, что повлияет на их ежемесячную премию, но перед сохранением информации нам нужно представить их с экраном " review ", где они могут просмотреть изменения и увидеть подробную разбивку их ежемесячной премии, и если они ее примут, мы сделаем " Save ".

По сути, это три этапа редактирования:

шаг 1 - «Редактировать» - экран, на котором пользователь редактирует свою информацию шаг 2 - «Просмотр» - только чтение информации на экране для просмотра введенных данных шаг 3 - «Сохранить» - фактическое сохранение данных.

Что делает его интересным, так это то, что существует множество маленьких разных экранов «редактирования», однако есть только ОДИН экран «просмотра».

это возможно путем сохранения данных в сеансе при редактировании / публикации и повторного восстановления их при сохранении, но это не похоже на хороший способ.

Есть ли более чистый способ сделать это в mvc?

1 Ответ

2 голосов
/ 16 февраля 2010

Вы можете хранить свои данные в TempData , но вам не нужно делать это таким образом.

Вы можете иметь три действия:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Edit() {
    //Returns the Edit view that displays an edit form
    //That edit form should post to the same action but with POST method.
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(AccountInformationModel m) {
    //Checks the form data and displays the errors in the 
    //edit view if the form data doesn't validate
    //If it does validate, then returns the Review view which renders 
    //all the form fields again but with their type as "hidden".
    //That form should post to Save action
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Save(AccountInformationModel m) {
    //Checks the form data again (just to be safe in case 
    //the user tampers the data in the previous step)
    //and displays the errors in the edit view if it doesn't validate.
    //if it does validate, saves the changes.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...