0

我有多个页面包含相同的局部视图。部分包含发布到操作的表单。发帖后,我想返回发帖前的页面。最好的方法是什么?

例子:

部分视图:表单 post action = note/create/

页面

第1页:产品/索引/

page2:客户/详情/

第3页:订单/详情/

这 3 个页面包含部分视图,当发布部分视图时,它会重定向到 note/create/。成功后我需要返回原始页面。

谢谢西蒙

4

2 回答 2

2

要么通过 AJAX 发布帖子——因此不会离开页面,要么将当前控制器/操作/id(或整个 Url)作为参数传递给处理帖子的操作。有关后者的示例,请参见下文。

 <% 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-13T14:27:24.857 回答
1

您可以将当前页面地址存储在隐藏字段中,并使用 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>

然后检索隐藏输入的地址并将用户重定向到它。

于 2009-07-13T14:36:46.933 回答