我正在寻找asp.net mvc中“编辑/审核/保存”方案的简洁方法:
我们的客户可以“编辑”他们的帐户信息会影响他们的每月保费,但在保存信息之前,我们需要通过“审核”屏幕向他们展示检查他们的更改并查看每月保费的详细细分,如果他们接受,我们会“保存”。
基本上是三步编辑:
第1步 - “编辑” - 用户编辑其信息的屏幕 第2步 - “审核” - 只读屏幕上的信息以查看输入的数据 第3步 - “保存” - 实际保存数据。
令人感兴趣的是,有许多不同的“编辑”屏幕,但只有一个“评论”屏幕。
可以通过在Edit / Post上的会话中存储数据并在保存时将其重新保存,但这不是一种好方法。
在mvc中有更简洁的方法吗?
答案 0 :(得分: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.
}