asp.net MVC部分ポストバックの応答を処理
-
12-09-2019 - |
質問
私は同じ部分図を含む複数のページを持っています。部分的には、そのアクションへの投稿フォームが含まれています。ポストの後、私はポストの前にあったページに戻りたいです。これを行うための最善の方法は何ですか?
例:
パーシャルビュー: フォームポストアクション=ノート/作成/
ページ
ページ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>
次に、隠し入力のアドレスを取得し、それにユーザーをリダイレクトします。
所属していません StackOverflow