البرمجة

تنفيذ إرسال نموذج HTML تلقائيا في ASP.NET MVC

بما أنك ترغب في إنشاء نموذج HTML وتقديمه للمستخدم دون عرضه له وبدلاً من ذلك تقوم بتقديم البيانات تلقائيًا من جانب المتحكم في ASP.NET MVC، فيمكنك استخدام تقنية تسمى “تجاهل العرض” (Display Mode) لتحقيق ذلك.

أولاً وقبل كل شيء، يجب عليك تجهيز النموذج الذي تريد إرساله إلى العميل في المتحكم (Controller). يمكنك استخدام StringBuilder أو بناء النص مباشرة كما تحتاج.

ثم، بمجرد أن تكون قد أعدت النموذج، يمكنك إعادة توجيه المتحكم (Controller) إلى عنوان URL الذي تريد أن يتم إرسال البيانات إليه. وبما أنك ترغب في استخدام طريقة POST، يمكنك استخدام RedirectToAction مع إرسال البيانات المطلوبة باستخدام الـ TempData.

الشيء الرئيسي هو عدم عرض النموذج للمستخدم. للقيام بذلك، يمكنك استخدام عنصر النموذج الخفي (Hidden Input) لكل معلومة تريد إرسالها.

إليك مثالًا على كيفية تنفيذ ذلك:

csharp
public ActionResult SubmitFormAutomatically() { // بناء النموذج StringBuilder formBuilder = new StringBuilder(); formBuilder.Append("
"); formBuilder.Append(""); formBuilder.Append(""); formBuilder.Append(""
); // إضافة نموذج HTML إلى TempData TempData["AutoSubmitForm"] = formBuilder.ToString(); // التوجيه إلى العرض الذي سيقوم بالإرسال التلقائي return RedirectToAction("AutoSubmitFormView"); } public ActionResult AutoSubmitFormView() { // قم بجلب النموذج من TempData string formHtml = TempData["AutoSubmitForm"] as string; // عرض النموذج دون علم المستخدم return Content(formHtml); }

في هذا المثال، نقوم ببناء النموذج في الطريقة “SubmitFormAutomatically” ونضعه في TempData ليتم عرضه في العرض “AutoSubmitFormView” دون علم المستخدم. يمكنك ضبط هذا المنطق بما يتناسب مع تطبيقك الخاص وبناء النموذج وفقًا لاحتياجاتك.

المزيد من المعلومات

بالطبع، سأزيد من التفاصيل لضمان فهم أكثر دقة لكيفية تنفيذ هذا المشروع.

أولاً، دعنا نستعرض ما فعلناه في الكود أعلاه:

  1. في الوظيفة “SubmitFormAutomatically”، قمنا ببناء النموذج HTML باستخدام StringBuilder. ثم قمنا بإضافة هذا النموذج إلى TempData.
  2. ثم، استخدمنا RedirectToAction لتوجيه المستخدم إلى العرض الذي سيعرض النموذج تلقائياً دون علمه.

الآن، دعنا نوضح ما يجب أن نفعله في العرض “AutoSubmitFormView” لعرض النموذج وإرساله تلقائياً دون تدخل المستخدم:

  1. في العرض “AutoSubmitFormView”، سنقوم بعرض النموذج HTML الذي تم تخزينه في TempData. يجب علينا استخدام Html.Raw لتجنب ترميز HTML.
  2. بمجرد عرض النموذج، سيقوم الجافا سكريبت بتقديم النموذج تلقائيًا باستخدام document.getElementById().submit().

إليك كيف يمكن تنفيذ ذلك:

csharp
public ActionResult AutoSubmitFormView() { // جلب النموذج من TempData string formHtml = TempData["AutoSubmitForm"] as string; // عرض النموذج دون علم المستخدم return Content(formHtml); }

ثم، في عنصر العرض نفسه، يمكننا إضافة الجافا سكريبت التالي:

html
<script> // عند تحميل الصفحة، قم بتقديم النموذج تلقائيًا window.onload = function() { document.getElementById("autoSubmitForm").submit(); }; script>

هذا الجافا سكريبت سيؤدي إلى تقديم النموذج تلقائياً بمجرد تحميل الصفحة دون علم المستخدم.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر