質問

私は同じ部分図を含む複数のページを持っています。部分的には、そのアクションへの投稿フォームが含まれています。ポストの後、私はポストの前にあったページに戻りたいです。これを行うための最善の方法は何ですか?

例:

パーシャルビュー: フォームポストアクション=ノート/作成/

ページ

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

PAGE2: 顧客/詳細/

PAGE3: 注文/詳細/

それは/を作成/注意することはリダイレクト部分を投稿する際に

これらの3ページには、部分的なビューが含まれています。私が成功した場合に元のページに戻る必要があります。

のおかげで サイモン

役に立ちましたか?

解決

のいずれかポストは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 ) }, ... )) { %>

  ....
 <% } %>

他のヒント

あなたは隠しフィールドで、現在のページのアドレスを格納し、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>

次に、隠し入力のアドレスを取得し、それにユーザーをリダイレクトします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top