【发布时间】:2010-01-10 05:14:26
【问题描述】:
我的设置:
- 查看如下路线:
/Pages/Details/2 - 页面详情视图有
<% Html.RenderAction("CreatePageComment", "Comments"); %>来呈现评论表单 - 评论表帖子到
Comments/CreatePageComment -
成功创建评论时,
/Comments/CreatePageComment返回RedirectToAction - 这一切都很好
我的问题:
如果出现验证错误,我应该如何返回/Pages/Detail/1 并在评论表单中显示错误?
- 如果我使用
RedirectToAction,验证似乎很棘手;我是否应该使用 Post-Redirect-Get 模式来验证错误,而不是仅仅返回? - 如果我返回
View(),它会让我回到显示CreateComment.aspx视图(带有验证,但只是白页上的一个表单),而不是调用RenderAction的/Pages/Details/2路由。
如果应该使用 PRG 模式,那么我想我只需要学习如何在使用 PRG 时进行验证。如果不是——在我看来,这似乎通过返回 View() 更好地处理——然后我不知道如何让用户在使用 RenderAction 时返回到初始视图,显示表单错误。
这感觉就像是同时敲打头部和揉腹部的游戏。我也不擅长那个。我是 MVC 的新手,所以这可能是这里的问题。
【问题讨论】:
-
顺便说一句:我可以通过使用 Partial 和 POST 路由 /Page/CreateComment 来实现这一点,但这看起来不是很混乱吗?我想让我的 Comments 控制器处理 cmets,而不是 Page 控制器。奇怪的是,我刚刚查看了 Oxite 博客引擎代码,他们的 Post 控制器处理添加评论;他们的 Comments 控制器甚至没有 Create 动作!
标签: asp.net-mvc renderaction post-redirect-get