سؤال

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

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

المحلول

يجب عليك إرجاع بيانات سلة في كل إجراء تحكم سيعود العرض الذي يستخدم التحكم في مستخدم السلة. ولكن هناك طرق لتجنب تكرار التعليمات البرمجية هنا. يمكنك تزيين طريقة الإجراء باستخدام ActionFilterTTRIVETTRIVETTRIVET من سحق البيانات المناسبة في حدث OnaxCtionExecututed، أو يمكنك إضافة بيانات سلة إلى قاموس ViewData في طريقة تهيئة وحدة التحكم الأساسية ثم الوصول إليها في عنصر تحكم مع ViewData ["String-string"] أو إنشاء طريقة التمديد على HTMLHELPER لتجنب السلاسل السحرية.

نصائح أخرى

من هذه صفحة MSDN:

تتيح لك طريقة عرض جزئية من تحديد طريقة عرض سيتم تقديمها داخل أحد الرؤية الأصل. يتم تطبيق وجهات نظر جزئية كتحكم مستخدم ASP.NET (.SCX).

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

يرجى ملاحظة ما يلي (أيضا من رابط MSDN أعلاه؛ التركيز لي):

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

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

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