【发布时间】:2012-07-12 15:54:13
【问题描述】:
首先,一些上下文:
在我的控制器中,我在成功的 HTTP POST 上返回 RedirectToAction。我使用 TempData 保留用户输入的模型数据,以便我重定向到的方法可以再次使用此输入数据。
示例: 1. 在搜索栏输入用户 ID。 2.点击按钮,进行POST,通过我的repository在数据库中找到用户,用户ID保存在TempData中,调用RedirectToAction("Edit")
TempData["user"] = searchViewModel.userID;
return RedirectToAction("Edit");
- 在Edit视图上进行编辑,点击commit按钮,用户信息保存在TempData中,调用RedirectToAction("Confirm");
- 在“确认”视图中显示所做的更改,单击“确认”,执行最终的 HTTP POST,并通过我的存储库服务进行更改。
这似乎运作良好。为了处理人们试图通过键入“../Edit/Confirm”来跳到地址栏中的页面,我在我的 Confirm 方法中进行了此检查:
if (TempData["editUserViewModel"] == null)
return RedirectToActionPermanent("Edit");
这是处理地址栏输入的最佳方式吗?我也做 TempData.Keep("editUserViewModel") 以便刷新工作。这是处理刷新的最佳方式吗?
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-mvc-3