ASP.NET MVC는 부분 포스트 백 응답을 처리합니다
-
12-09-2019 - |
문제
동일한 부분보기가 포함 된 여러 페이지가 있습니다. 부분에는 동작에 게시하는 양식이 포함되어 있습니다. 게시물 후 나는 페이지로 돌아가고 싶다. 나는 게시물 전에 켜져 있었다. 이것을하는 가장 좋은 방법은 무엇입니까?
예시:
부분보기 : 양식 사후 조치 = Note/Create/
페이지
1 페이지 : 제품/색인/
Page2 : 고객/세부 사항/
Page3 : 주문/세부 사항/
이 3 페이지에는 부분 뷰가 포함되어 있으며, 부분적 인 IT 리디렉션을 게시 할 때 주석/작성/작성. 성공시 원래 페이지로 돌아 가야합니다.
고마워 사이먼
해결책
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 ) }, ... )) { %>
....
<% } %>
다른 팁
현재 페이지 주소를 숨겨진 필드에 저장하고 게시물 요청으로 보낼 수 있습니다.
부분적으로 :
<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