1

我正在寻找关于asp.net mvc 中“编辑/查看/保存”场景的干净方法:

我们的客户可以“编辑”他们的账户信息,这将影响他们的每月保费,但在保存信息之前,我们需要向他们展示“审查”屏幕,他们可以在其中查看他们的更改并查看他们每月保费的详细细分以及他们是否接受然后我们执行“保存”。

基本上它是一个三步编辑:

第 1 步 - “编辑” - 用户编辑信息的屏幕 第 2 步 - “查看” - 只读屏幕上的信息以查看输入的数据 第 3 步 - “保存” - 数据的实际保存。

有趣的是,有许多不同的“编辑”屏幕,但只有一个“审查”屏幕。

可以通过在编辑/发布时将数据存储在会话中并在保存时将其恢复,但这并不是一个好方法。

在 mvc 中有没有更干净的方法来做到这一点?

4

1 回答 1

2

您可以将数据存储在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.
}
于 2010-02-16T09:32:07.850 回答