سؤال

لدي نموذج يمثل جزءًا من طريقة عرض جزئية وأحتاج إلى إرساله إلى موقع مختلف بناءً على سياق العرض الذي يحتوي على النموذج.لا يمكنني استخدام Html.BeginForm لأن النموذج يحتوي على نموذج متعدد الأجزاء/بيانات النموذج، لذا فإن ملء الإجراء تلقائيًا هو أمر خارج الباب.

هل هناك متغير بسيط يمكنني الاتصال به لملء وحدة التحكم/الإجراء الحالي باعتباره إجراء النموذج الخاص بي؟أرى أن ViewContext.RouteData.Values["action"]، ViewContext.RouteData.Values["controller"] سيعيد هذه القيم، ولكن هل هناك موصل أفضل؟

شكرًا!

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

المحلول

الطريقة HtmlHelper.BeginForm() يملأ العمل ووحدة التحكم تلقائيا هو باستخدام Request.RawUrl.لذا يمكنك فقط أن تكتب:

<form action="<%= Request.RawUrl %>" method="post" enctype="multipart/form-data">
    ....
</form>

نصائح أخرى

وهذا هو ما فعلته

العرض الكامل الأول:

 <% using (Html.BeginForm("Edit", "Admin",FormMethod.Post, 
              new { enctype = "multipart/form-data" })){%>
            <% Html.RenderPartial("MerchandiseEditDetail", Model); %>
   <%}%>>

المشاهدة الكاملة الثانية:

 <% using (Html.BeginForm("Create", "Admin",FormMethod.Post, 
       new { enctype = "multipart/form-data" })){%>
    <% Html.RenderPartial("MerchandiseEditDetail", Model); %>
<%}%>

ما زلت أبحث عن حل أفضل، ولكن هذا يحل مشكلتي جزئيًا في الوقت الحالي.

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