سؤال

مرحبا،

أنا متأكد من أنني أفتقد شيئا واضحا جدا هنا حتى يغفر لي.

  • أنا استخدم MVC 2 بيتا ولدي نموذج يحتوي على العديد من الخصائص والسلاسل والمجلس الدولي إلخ. الاشياء المعتادة.
  • يحتوي أيضا على صفيف بايت يحتوي على صورة.
  • لدي طريقة تحرير الحركة على جهاز التحكم الخاص بي مزينة بسمة [httpget].
  • تقوم الطريقة بتمرير النموذج إلى العرض الذي يعد نموذجا له مربعات النص المعتادة التي ترتبط بخصائص السلسلة المختلفة وعنصر IMG المرتبط بمجموعة البايت / الصورة.

كل هذا يعمل كما ينبغي وأرى كل البيانات بما في ذلك الصورة. هذا هو كل الأشياء القياسية جدا.

ولكن عندما يقدم المستخدم النموذج إلى الإصدار الخاص بي [httpPost] من طريقة الإجراء التي تقبل نفس النموذج مثل معلمة خاصية الصورة فارغة. أي أن خاصية الصورة لا يبدو أنها جزء من الربط النموذجي.

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

أعلم أنني أستطيع الذهاب والحصول على الصورة مرة أخرى (من قاعدة البيانات أو حيث من أي وقت مضى) ووضعها مرة أخرى في النموذج قبل تمريرها إلى العرض، ولكن هل هذا هو الأبوة اليمنى أو قد فاتني شيئا?

التحيات، سيمون

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

المحلول

كيف تجعل الصورة الواردة كبيانات ثنائية في النموذج؟ هل تستخدم عناصر تحكم Classic WebForms (ما لن يكون موصولا في مصطلحات MVC)؟ على أي حال، إذا تم عرض الصورة فقط في طريقة العرض، فلن يتم نشر المستخدم عندما يقدم المستخدم النموذج لأن حقول الإدخال فقط (خانات الاختيار، حقول النص، Hiddens) يتم إرسالها إلى الخادم. عنصر الصورة ليس كذلك. تذكر أنه في MVC، يكون HTML بسيط يقوم بتصميم جميع أعمال نشر البيانات على الخادم - لا يوجد عرض عارض أو عون بريد إلكتروني تلقائي ستستمر حالة عناصر التحكم. لديك حلان:

  1. تشفير البيانات الثنائية في بعض الحقل المخفية حتى يتم نشرها مرة أخرى.
  2. (أفضل) لا ترسل بيانات الصورة جيئة وذهابا بين العميل والخادم، ولكن الكشف إذا قدم المستخدم صورة جديدة (أتوقع أن تستخدم Wolud إدخال ملفات الملفات لذلك) وإذا ترك المستخدم إدخال الملف فارغ ثم تحديث نموذج مع الصورة المخزنة بالفعل في قاعدة البيانات لعرضها مرة أخرى. خلاف ذلك تحديث الصورة في قاعدة البيانات.

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

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