كيف يمكنني إضافة سمة فئة إلى عنصر HTML تم إنشاؤه بواسطة HTML Helpers الخاص بـ MVC؟

StackOverflow https://stackoverflow.com/questions/879266

  •  22-08-2019
  •  | 
  •  

سؤال

يمكن لـ ASP.NET MVC إنشاء عناصر HTML باستخدام HTML Helpers، على سبيل المثال @Html.ActionLink(), @Html.BeginForm() وما إلى ذلك وهلم جرا.

أعلم أنه يمكنني تحديد سمات النموذج عن طريق إنشاء ملف كائن مجهول وقم بتمرير هذا الكائن إلى (الرابع في هذه الحالة) htmlAttributes المعلمة حيث تحديد id للعنصر:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})

ولكن ماذا عن class يصف؟من الواضح أن هذا لا يعمل:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})

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

لقد حاولت أيضًا:

new { _class = "myclass"}

و

new { class_ = "myclass"}

ولكنها أيضا لم تنجح، كما يتم استبدال الشرطات السفلية بشرطات.

أعلم أنه يمكنني أيضًا كتابة عناصر HTML يدويًا أو لف النموذج داخل ملف <div class="myClass">, ، لكنني مازلت مهتمًا بمعرفة كيف من المفترض أن يتم ذلك.

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

المحلول

من أجل إنشاء نوع مجهول (أو أي نوع) بخاصية تحتوي على الكلمة المحجوزة كاسمها في C#، يمكنك وضع اسم الخاصية في المقدمة بعلامة، @:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { @class = "myclass"})

بالنسبة لـ VB.NET سيكون بناء الجملة هذا تم إنجازه باستخدام النقطة، ., ، والذي في تلك اللغة هو بناء الجملة الافتراضي لـ الجميع أنواع مجهولة:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })

نصائح أخرى

أفضل الممارسات الحالية في تطوير CSS هي إنشاء المزيد من المحددات العامة مع المعدلات التي يمكن تطبيقها على أوسع نطاق ممكن في جميع أنحاء موقع الويب.سأحاول تجنب تحديد أنماط منفصلة لعناصر الصفحة الفردية.

إذا كان الغرض من فئة CSS على <form/> العنصر هو التحكم في نمط العناصر داخل النموذج، يمكنك إضافة سمة الفئة الموجودة <fieldset/> العنصر الذي يقوم بتغليف أي نموذج بشكل افتراضي في صفحات الويب التي تم إنشاؤها بواسطة ASP.NET MVC.نادرًا ما تكون فئة CSS في النموذج ضرورية.

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