0

同じ部分ビューを含む複数のページがあります。パーシャルには、アクションに投稿するフォームが含まれています。投稿後、投稿前のページに戻りたいと思います。これを行うための最良の方法は何ですか?

例:

部分ビュー:フォーム投稿アクション= note / create /

ページ

ページ1:製品/インデックス/

ページ2:顧客/詳細/

ページ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 に答える