سؤال

لدي صفحات متعددة تحتوي على نفس الرأي الجزئي. يحتوي الجزئي على نموذج ينشر إلى إجراء. بعد مشاركة أريد العودة إلى الصفحة التي كنت فيها قبل النشر. ما هي الطريقة الأفضل لعمل هذا؟

مثال:

عرض جزئي: نموذج ما بعد العمل = ملاحظة / إنشاء /

الصفحات

Page1: المنتجات / الفهرس /

page2: العميل / التفاصيل /

Page3: ترتيب / التفاصيل /

تحتوي هذه الصفحات 3 على طريقة العرض الجزئية، عند نشرها تعيد توجيهها إلى ملاحظة / إنشاء /. أحتاج إلى العودة إلى الصفحة الأصلية حول النجاح.

شكرا سيمون

هل كانت مفيدة؟

المحلول

إما أن يحدث هذا المنصب عبر Ajax - وبالتالي عدم ترك الصفحة، أو قم بتمرير وحدة التحكم / الإجراء / المعرف الحالي (أو عنوان 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>

ثم استرجع عنوان المدخلات المخفية وإعادة توجيه المستخدم إليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top