我有多个包含相同局部视图的页面。partial包含一个发布到操作的表单。在一篇帖子之后,我想返回到我在帖子之前的页面。做这件事最好的方法是什么?
示例:
部分视图:表单post操作=备注/创建/
页面
page1:产品/索引/
page2:客户/详细信息/
page3:订单/详情/
这3个页面包含局部视图,在发布它重定向到note/create/的局部视图时。我需要返回到关于成功的原始页面。
谢谢西蒙
发布于 2009-07-13 14:27:25
让post通过AJAX发生--这样就不会离开页面,或者将当前的控制器/ action /id(或整个Url )作为参数传递给处理post的操作。下面是后者的一个例子。
<% using (Html.BeginForm(...)) { %>
<input type='hidden'
name='currentController'
value='<%= ViewContext.RouteData["controller"] %>' />
<input type='hidden'
name='currentAction'
value='<%= ViewContext.RouteData["action"] %>' />
<input type='hidden'
name='<%= ViewContext.RouteData["id"] %>' />
...rest of form...
<% } %>或
<% using (Html.BeginForm( ...,
new { ReturnUrl = Url.Action( ViewContext.RouteData["action"],
ViewContext.RouteData ) }, ... )) { %>
....
<% } %>发布于 2009-07-13 14:36:47
您可以将当前页面地址存储在隐藏字段中,并将其与Post请求一起发送。
在局部视图中:
<script type="text/javascript">
var field = document.getElementById("currentPage");
field.value=document.location.href;
</script>
<form method="post" action="note/create/">
...
<input type="hidden" value="" id="currentPage" name="currentPage" />
</form>然后检索隐藏输入的地址,并将用户重定向到该地址。
https://stackoverflow.com/questions/1119741
复制相似问题