خلال الأسابيع القليلة الماضية ، كنت أعمل على سلسلة من مشاركات المدونات التي تغطي ASP الجديدة. NET MVC Framework هو أسلوب اختياري يمكنك استخدامه لتكوين ASP الخاص بك. تطبيقات الويب الصافية لديها فصل واضح للمخاوف ، وتسهل على الوحدة اختبار شفرتك ودعم سير عمل TDD. بنت أول مشاركة في هذه السلسلة موقعًا / قائمة تصفح منتجات التجارة الإلكترونية البسيطة. غطت المفاهيم عالية المستوى وراء MVC ، وأظهرت كيفية إنشاء ASP جديدة. مشروع NET MVC من الصفر لتنفيذ واختبار هذه الوظيفة قائمة المنتجات التجارة الإلكترونية. المنشور الثاني تم حفره عميقًا في بنية توجيه URL الخاصة بـ ASP. إطار NET MVC ، وناقش كيفية عمله وكذلك كيفية التعامل مع سيناريوهات توجيه URL أكثر تقدمًا معه. ناقشت المقالة الثالثة كيفية تفاعل المتحكمين مع طرق العرض ، وتناولت على وجه التحديد الطرق التي يمكنك من خلالها تمرير بيانات المشاهدة من وحدة التحكم إلى العرض بهدف إعادة الاستجابة إلى العميل.. في مقالتي اليوم & apos؛ s ، سأناقش المناهج التي يمكنك استخدامها للتعامل مع مدخلات النموذج وسيناريوهات ما بعد استخدام إطار MVC ، بالإضافة إلى الحديث عن بعض طرق تمديد مساعد HTML التي يمكنك استخدامها معها لجعل سيناريوهات تحرير البيانات أسهل. انقر هنا لتنزيل شفرة المصدر للتطبيق المكتمل الذي سنقوم بنشره أدناه لشرح هذه المفاهيم. إدخال النموذج و سيناريو النشر للمساعدة في توضيح بعض أساسيات كيفية التعامل مع إدخال النموذج ونشر سيناريوهات مع ASP. NET MVC Framework ، سنقوم ببناء قائمة منتجات بسيطة ، إنشاء منتج ، سيناريو تحرير المنتج. تحميل برنامج net framework 4 0 برابط مباشر ثانيسيكون لديه ثلاث تجارب أساسية للمستخدم النهائي: سيتمكن تصنيف المنتج حسب الفئة المستخدمون من رؤية قائمة بجميع المنتجات ضمن فئة معينة من المنتجات من خلال الانتقال إلى / المنتجات / الفئة / عنوان URL: إضافة مستخدم جديد للمنتج سيتمكن من إضافة منتج جديد إلى المتجر بالنقر على رابط 'إضافة منتج جديد' أعلاه. ويأخذهم هذا إلى عنوان / المنتجات / عنوان URL الجديد - حيث سيُطلب منهم إدخال تفاصيل حول منتج جديد لإضافته: عندما ينقرون على الحفظ ، ستتم إضافة المنتج إلى قاعدة البيانات ، وسيتم إعادة توجيههم مرة أخرى إلى قائمة المنتجات صفحة. تحرير المنتج في صفحة قائمة المنتجات ، يمكن للمستخدمين النقر فوق الرابط 'تعديل' بجوار كل منتج. هذا يأخذهم إلى / المنتجات / تحرير / URL - حيث يمكنهم تغيير تفاصيل المنتج وضرب زر حفظ لتحديثها في قاعدة البيانات: نموذج البيانات لدينا سوف نستخدم قاعدة بيانات نموذج SQL Server Northwind لتخزين البيانات. سنقوم بعد ذلك باستخدام LINQ لمخطط ترابط كائن SQL (ORM) . 5 إلى نموذج المنتج والفئة وكائنات المورد التي تمثل الصفوف في جداول قاعدة البيانات لدينا. سنبدأ بالنقر بزر الماوس الأيمن على مجلدنا الفرعي / النماذج في ASP. مشروع NET MVC ، وحدد 'إضافة عنصر جديد' -> 'LINQ إلى فئات SQL' لإظهار مصمم LINQ إلى SQL ORM وطراز كائنات البيانات الخاصة بنا: نحن & apos؛ ll ثم إنشاء فئة NorthwindDataContext جزئية في مشروعنا وإضافة بعض المساعد طرق لذلك. نحن نعرّف طرق المساعدة هذه لسببين: 1) أنه يتجنبنا تضمين طلبات LINQ الخاصة بنا مباشرة في فصول وحدة التحكم لدينا ، و 2) سيمكننا من تكييف تحكمنا بسهولة أكبر لاستخدام حقن التبعية في المستقبل. أساليب مساعد NorthwindDataContext نحن & apos؛ ll إضافة تبدو مثل أدناه: لمعرفة المزيد حول LINQ و LINQ إلى SQL ، يرجى مراجعة سلسلة LINQ إلى SQL هنا. بناء المنتجات الخاصة بنا Controller سنقوم بتنفيذ جميع تجارب التصفح الأساسية للمستخدم الثالث باستخدام فئة وحدة تحكم واحدة - والتي سنقوم بالاتصال بها 'ProductsController' (انقر بزر الماوس الأيمن على المجلد الفرعي 'Controllers' وحدد 'Add New Item' - > 'MVC Controller' من أجل إنشائه: سيتناول فئة ProductsController عناوين URL مثل / المنتجات / الفئة / 3 و / المنتجات / الجديدة و / المنتجات / تعديل / 5 من خلال تنفيذ 'الفئة' و 'جديد' و 'تعديل 'الإجراءات: اقرأ الجزء 1 و الجزء 2 من ASP الخاص بي. NET MVC Series لمعرفة المزيد حول كيفية توجيه عناوين URL هذه إلى أساليب الإجراء في فئة ProductsController. في هذا النموذج ، سنستخدم قاعدة تعيين المسارات الافتراضية /// ، مما يعني أننا لا نحتاج إلى تهيئة أي شيء حتى يحدث التوجيه. تحميل برنامج net framework 4 0 برابط مباشر كاملةستستخدم إجراءات وحدة التحكم الخاصة بنا ثلاث صفحات عرض من أجل تقديم المخرجات. صفحات aspx 'ستعمل ضمن المجلد الفرعي Views Products ، وتكون مستندة إلى الموقع. الصفحة الرئيسية الرئيسية تحت Views Shared. تنفيذ قائمة المنتجات حسب الفئة سيكون الجزء الأول من الموقع الذي سنقوم بتنفيذه هو عنوان URL لقائمة المنتجات (/ المنتجات / الفئة /): سنقوم بتنفيذ هذه الوظيفة باستخدام إجراء 'الفئة' في فئة ProductsController الخاصة بنا. سوف نقوم باستخدام LINQ الخاص بنا إلى فئة SQL DataContext ، وأسلوب المساعد GetCategoryById الذي قمنا بإضافته إليه ، لاسترداد كائن الفئة الذي يمثل الفئة المحددة التي يشير إليها عنوان URL (على سبيل المثال: / Products / Category / 3). سنقوم بعد ذلك بتمرير كائن الفئة إلى طريقة العرض 'قائمة' لعرض رد منه: عند تنفيذ عرض القائمة ، سنقوم أولاً بتحديث شفرة الصفحة الخاصة بنا ليتم اشتقاقها من ViewPage بحيث تكون خاصية ViewData الخاصة بصفحة & apos؛ s الخاصة بنا سيتم كتابتها إلى كائن الفئة الذي تم تمريره بواسطة وحدة التحكم الخاصة بنا (الجزء 3 يناقش هذا أكثر): سنقوم بعد ذلك بتطبيق قائمتنا. aspx مثل أدناه: عرض أعلاه يعرض اسم الفئة في أعلى الصفحة ، ثم يعرض قائمة نقطية من المنتجات ضمن الفئة. يوجد بجانب كل منتج في القائمة النقطية ارتباط 'تحرير'. طريقة مساعد ActionLink التي ناقشتها في الجزء 2 لتقديم ارتباط تشعبي HTML (على سبيل المثال: تحرير) عند الضغط عليه سوف ينتقل المستخدم إلى إجراء 'تحرير'. أسلوب مساعد ActionLink مرة أخرى أسفل الصفحة لعرض رابط إضافة منتج جديد عند انتقاله ، سيتم نقل المستخدم إلى الإجراء 'جديد'. عندما نزور عنوان / المنتجات / الفئة / 1 ونفعل مصدر عرض في المتصفح ، فسوف تلاحظ أن ASP الخاص بنا. لقد أطلق تطبيق NET MVC تنسيقات HTML وعناوين URL نظيفة جدًا: تطبيق إضافة منتج جديد (الجزء 1 - الخلفية) دعنا الآن ننفذ وظيفة نشر نموذج 'إضافة منتج جديد' لموقعنا. سنقوم في النهاية أن نرغب في رؤية المستخدمين لشاشة مثل الشاشة أدناه عند زيارتهم / المنتجات / عنوان URL الجديد: يتم عادةً معالجة سيناريو الإدخال وتحرير السيناريوهات في ASP. NET MVC Framework بتعريض طريقتين عمل على فئة جهاز تحكم. تعد طريقة إجراء وحدة التحكم الأولى مسؤولة عن إرسال HTML الذي يحتوي على النموذج الأولي لعرضه. تحميل برنامج net framework 4 0 برابط مباشر ذي القدمومن ثم تكون طريقة تصرف المراقب المالي الثانية مسؤولة عن التعامل مع أي عمليات إرسال للنماذج يتم إرسالها من المتصفح. على سبيل المثال ، بالنسبة لشاشة 'إضافة منتج' أعلاه ، يمكننا اختيار تطبيقه عبر إجراءين مختلفين للمراعاة: أحدهما يسمى 'جديد' والآخر يسمى 'إنشاء'. سيكون عنوان / المنتجات / عنوان URL الجديد مسؤولاً عن عرض نموذج فارغ مع مربعات نص HTML وضوابط قائمة منسدلة لإدخال تفاصيل المنتج الجديد. بعد ذلك ، سيكون عنصر HTML في هذه الصفحة قد تم تعيين سمة 'الإجراء' على عنوان / Products / Create URL. هذا يعني أنه عندما يقوم المستخدم بالضغط على زر إرسال النموذج ، سيتم إرسال مدخلات النموذج إلى إجراء 'إنشاء' لمعالجة قاعدة البيانات وتحديثها باستخدام. تنفيذ إضافة منتج جديد (الجزء الثاني - المقاربة الأولى) فيما يلي تنفيذ أولي يمكننا استخدامه في ProductsController. لاحظ أعلاه أننا لدينا الآن طريقتين للعمل في عملية إنشاء المنتج - 'جديد' و 'إنشاء'. ببساطة طريقة العمل 'جديد' يعرض نموذج فارغ للمستخدم. أسلوب عمل 'إنشاء' هو ما يعالج القيم المنشورة من النموذج ، وينشئ منتجًا جديدًا في قاعدة البيانات استنادًا إليه ، ثم يعيد توجيه العميل إلى صفحة تصنيف الفئة للمنتج. يتم تنفيذ نموذج HTML المرسلة إلى العميل في 'جديد. aspx 'طريقة عرض تسمى طريقة العمل' الجديدة '. سيبدو تنفيذ أولي لهذا (باستخدام مربعات النص لكل شيء) كما يلي: لاحظ أعلاه كيف نستخدم عنصر HTML قياسي في الصفحة (وليس نموذجًا runat = خادم). تم تعيين سمة 'الإجراء' للنموذج & apos؛ للنشر على طريقة الإجراء 'إنشاء' على ProductsController. سيحدث المنشور عند الضغط على العنصر الموجود في الجزء السفلي. سيعالج NET MVC Framework تلقائيًا تعيين قيم ProductName و CategoryID و SupplierID و UnitPrice كمعلمات الأسلوب إلى طريقة إجراء 'إنشاء' على ProductsController: والآن عندما نقوم بتشغيل الموقع لدينا وظيفة إدخال المنتج الأساسية تعمل: تنفيذ إضافة منتج جديد (الجزء 3 - استخدام مساعدين HTML للقوائم المنسدلة) تعمل شاشة إدخال المنتج التي أنشأناها في القسم السابق ، ولكننا لسنا أكثر سهولة في الاستخدام. تحميل برنامج net framework 4 0 برابط مباشر يوتيوبوعلى وجه التحديد ، يتطلب الأمر معرفة المستخدم النهائي للأرقام الأولية لفئة CategoryID و الرقم التعريفي للمنتج الذي يتم إدخاله. نحتاج إلى إصلاح ذلك عن طريق عرض قائمة منسدلة بتنسيق HTML تعرض أسماء الأشخاص القابلة للقراءة. ستكون خطوتنا الأولى هي تعديل ProductsController لتمريرها إلى عرض مجموعتين - واحدة تحتوي على قائمة من الفئات المتاحة ، والأخرى قائمة بالموردين المتاحين. سنقوم بذلك عن طريق إنشاء فئة ProductsNewViewData مكتوبة بقوة والتي تقوم بتغليف هذه ، والتي سننتقل إليها بعد ذلك (يمكنك معرفة ذلك في الجزء 3): سنقوم بعد ذلك بتحديث طريقة العمل 'الجديدة' الخاصة بنا هذه المجموعات وتمريرها كـ ViewData لعرض 'جديد': في رأينا ، يمكننا حينئذٍ استخدام هذه المجموعات لإنشاء قوائم منسدلة بتنسيق HTML. NET MVC HTML Helpers أحد الأساليب التي يمكن أن نستخدمها لإنشاء قوائم منسدلة لدينا هو إنشاء حلقة for-loop الخاصة بنا يدويًا والتي تحتوي على / else عبارات داخل HTML. وهذا من شأنه أن يمنحنا تحكمًا كاملًا في HTML - ولكن سيجعل HTML فوضويًا. أسلوب أنظف بكثير يمكنك استخدامه بدلاً من ذلك هو الاستفادة من خاصية 'Html' المساعد على فئة أساسية ViewPage. هذا كائن ملائم يكشف مجموعة من أساليب واجهة مستخدم مساعد HTML التي تعمل على تهيئة إنشاء واجهة مستخدم HTML تلقائيًا. على سبيل المثال ، في وقت سابق من هذه المشاركة استخدمنا Html. أسلوب مساعد ActionLink لإنشاء عناصر: تم تصميم كائن HtmlHelper (بالإضافة إلى كائن AjaxHelper - الذي سنتحدث عنه في برنامج تعليمي لاحق) خصيصًا ليتم توسيعه بسهولة باستخدام 'أساليب التمديد' - وهي ميزة جديدة للغة VB و C # في إصدار VS 2008. ما يعنيه هذا هو أنه يمكن لأي شخص إنشاء طرق المساعدة المخصصة الخاصة به لهذه الكائنات ومشاركتها لتستخدمها. نحن لدينا العديد من أساليب HTML و AJAX المساعدة في معاينات مستقبلية لـ ASP. تحميل برنامج net framework 4 0 برابط مباشر ذا فويسفي الإصدار الأول للمعاينة ، يكون أسلوب 'ActionLink' مدمجًا في النظام. مع ذلك ، لدينا أيضًا تنزيل 'MVCToolkit' منفصل يمكنك إضافته إلى مشروعك للحصول على العشرات من طرق المساعد التي يمكنك استخدامها مع الإصدار الأول للمعاينة. لتثبيت أساليب مساعد HTML MVCToolkit ، ببساطة إضافة MVCToolkit. تجميع dll إلى مراجع المشروع الخاص بك: إعادة إنشاء المشروع الخاص بك. وبعد ذلك في المرة التالية التي تكتب فيها ، ستشاهد العديد من مساعدي UI الإضافيين الذين يمكنك استخدامها: لإنشاء قوائم منسدلة HTML ، يمكننا استخدام Html. تأتي كل طريقة مع إصدارات طرق ذات حمولة زائدة - كل ذلك مع حساسية كاملة داخل وجهات نظرنا: يمكننا تحديث عرضنا 'الجديد' لاستخدام Html. حدد خيارات لعرض القوائم المنسدلة التي تستخدم خصائص CategoryID / SupplierID كقيم و CategoryName / SupplierName كنص العرض باستخدام الكود أدناه: سيؤدي ذلك إلى إنشاء ترميز HTML المناسب لنا في وقت التشغيل: وامنح المستخدمين النهائيين طريقة أسهل لاختيار فئة المنتج والمورد على منتجاتنا / المنتجات / الشاشة الجديدة: ملاحظة: نظرًا لأننا لا نزال نرسل قيمة CategoryID و ContentID إلى الخادم ، لا نحتاج إلى تحديث ProductsController Create Action على الإطلاق لدعم واجهة المستخدم الجديدة هذه - سوف تعمل فقط. تنفيذ إضافة منتج جديد (الجزء 4 - التنظيف لأعلى باستخدام أسلوب UpdateFrom) تعتبر عملية 'إنشاء' طريقة العمل الخاصة بنا هي المسؤولة عن معالجة نموذج نشر سيناريو 'إضافة منتج' الخاص بنا. يعالج حاليًا معلمات النموذج الوارد كحجج لأسلوب الإجراء: هذا النهج يعمل بشكل جيد - على الرغم من أنه بالنسبة للنماذج التي تنطوي على كميات كبيرة من القيم ، فإن توقيعات الأسلوب في الإجراءات يمكن أن تصبح صعبًا قليلاً في القراءة.. الشفرة أعلاه التي تحدد جميع قيم المعلمات الواردة لكائن المنتج الجديد هي أيضًا طويلة ورتيبة. إذا قمت بالرجوع إلى التجميع MVCToolkit ، فيمكنك اختيارياً الاستفادة من 'طريقة ملحق' مفيدة تم تنفيذها داخل النظام. مساحة الاسم BindingHelpers التي يمكن أن تساعد في تنظيف هذا قليلاً. يطلق عليه 'UpdateFrom' ويمكن استخدامه على أي . يأخذ قاموس القيم كوسيطة ، ثم سيقوم تلقائيًا بإجراء تعيين خاصية على نفسه لأي مفتاح يطابق خاصية عامة على الكائن. على سبيل المثال ، يمكننا إعادة كتابة طريقة إنشاء الإجراء أعلاه لاستخدام أسلوب UpdateFrom كما يلي: ملاحظة: إذا كنت تريد أن تكون أكثر وضوحًا لأسباب تتعلق بالأمان وتسمح فقط بتحديث بعض الخصائص ، فيمكنك أيضًا تمرير صفيف سلسلة بشكل اختياري. أسماء الخصائص لتحديث أسلوب UpdateFrom: تنفيذ تحرير وظائف المنتج (الجزء 1 - الخلفية) دعنا الآن نقوم بتطبيق وظيفة 'تحرير المنتج' لموقعنا. نحن في النهاية نرغب في أن يشاهد المستخدمون شاشة مثل أدناه عند زيارتهم / المنتجات / تحرير / عنوان URL: مثل نموذج نشر نموذج 'إضافة منتج جديد' أعلاه ، سنقوم بتنفيذ هذا التفاعل لتعديل النموذج باستخدام اثنين من إجراءات ProductsController التي نقوم نحن بها ؛ ليرة لبنانية استدعاء 'تحرير' و 'تحديث': 'تحرير' سيتم عرض نموذج المنتج. تحميل برنامج net framework 4 0 برابط مباشر صوتسيتم استخدام 'التحديث' للتعامل مع إجراء إرسال النموذج. تنفيذ تحرير وظيفة المنتج (الجزء الثاني - تعديل الإجراء) سنبدأ في تمكين وظيفة تعديل التطبيق والتطبيق من خلال تنفيذ طريقة تصرف تحرير المنتج.. عندما أنشأنا صفحة قائمة المنتجات في بداية هذه المشاركة ، أنشأناها بحيث يأخذ تحرير الإجراء وسيطة معرف كجزء من عنوان URL (على سبيل المثال: / Products / Edit / 5): We & apos؛ ll want the Edit طريقة عمل لاسترداد كائن المنتج المناسب من قاعدة البيانات ، بالإضافة إلى استرداد مجموعات الموردين والفئات المتاحة (حتى نتمكن من تنفيذ القوائم المنسدلة في طريقة عرض التعديل). سنقوم بتعريف كائن عرض تم كتابته بقوة لتمثيل كل هذا باستخدام كائن ProductsEditViewData أدناه: يمكننا بعد ذلك تنفيذ أسلوب تحرير الإجراء الخاص بنا لملء كائن عرض البيانات هذا وتجريده بطريقة عرض 'تحرير': التنفيذ تعديل وظائف المنتج (الجزء الثاني) - تحرير عرض) يمكننا تنفيذ 'تحرير. aspx 'صفحة العرض باستخدام الطريقة التالية: لاحظ كيف نستخدم كل من Html. يحتوي تحديد أسلوب المساعد على نسخة ذات تحميل زائد تسمح لك بتحديد القيمة المحددة في القائمة المنسدلة. في المقتطف أدناه I & apos؛ m الذي يشير إلى أنني أريد تحديد عنصر القائمة المنسدلة للفئة تلقائيًا استنادًا إلى قيمة CategoryID الحالية لتعديل المنتج: 'أخيرًا' - لاحظ كيف نستخدم عنوان Url. الإجراء () طريقة المساعد لتعيين سمة 'الإجراء' للعنصر و s: كل من عنوان Url. NET MVC Framework & apos؛ s s. محرك التوجيه لإنشاء عناوين URL (اقرأ الجزء 2 للحصول على تفاصيل حول كيفية عمل جيل URL). ما يعنيه هذا هو أنه إذا قمنا بتغيير قواعد توجيه التعديلات في موقعنا ، فلن نحتاج إلى تغيير أي رمز في جهاز التحكم لدينا أو عرضه. على سبيل المثال ، يمكننا إعادة تعيين عناوين URL الخاصة بنا لاستخدام عنوان URL أكثر RESTful مثل / المنتجات / 1 / Edit بدلاً من / Products / Edit / 1 ، مع الاستمرار في عمل وحدة التحكم والعرض أعلاه بدون تعديل. تنفيذ تحرير وظائف المنتج (الجزء 3 - إجراء التحديث) ستكون خطوتنا الأخيرة هي تنفيذ طريقة الإجراء 'تحديث' في فئة منتجتنا ProductController: مثل طريقة عمل 'إنشاء' السابقة التي نستخدمها لنستفيد من طريقة تمديد 'UpdateFrom' إلى تلقائيا ملء كائن منتجنا من الطلب. لاحظ أنه بدلاً من ملء كائن منتج فارغ ، فإننا نستخدم نموذجًا حيث نقوم أولاً باسترداد القيم القديمة من قاعدة البيانات ، ثم تطبيق التغييرات التي أدخلها المستخدم عليها ، ثم حفظها في قاعدة البيانات. بمجرد أن يتم التعديل ، نعيد التوجيه إلى صفحة قائمة المنتجات - وتعيين / Products / Category / تلقائيًا لتتناسب مع الحالة المحفوظة للمنتج الذي كنا نعمل عليه. الملخص نأمل أن يساعد هذا المنشور في تقديم بعض التفاصيل الإضافية حول كيفية معالجة 'إدخال النموذج' و 'سيناريو النشر' باستخدام ASP. NET MVC Framework ، بالإضافة إلى توفير بعض السياق لكيفية التعامل مع بنية البيانات الشائعة وتحريرها وتحريرها مع ذلك. تحميل برنامج net framework 4 0 برابط مباشر ض 4ملف ZIP يحتوي على شفرة المصدر للتطبيق المكتمل الذي أنشأناه أعلاه. في المشاركات المستقبلية ، سوف أغطي كيفية التعامل مع حالات التحقق من الصحة واسترداد الأخطاء مع سيناريوهات الإدخال والإدخال. سوف أتحدث عن بعض الدعم لسقالات البيانات والأمان المدمجة لتمكين إنشاء التطبيقات بسرعة. سوف أقوم بمناقشة كيف يمكنك استخدام ASP. NET AJAX لتنفيذ عمليات التحرير التي تدعم AJAX باستخدام إطار MVC. وسوف نتعمق في كيفية اختبار وحدة وإضافة حقن التبعية إلى وحدات التحكم الخاصة بك.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
May 2019
Categories |