سؤال

عن طريق الافتراضي مع

<%: Html.EditorFor(m => m.ConfirmationHeadline) %>

الإخراج هو:

 <input type="text" value="" 
        name="ConfirmationHeadline" id="ConfirmationHeadline" 
        class="text-box single-line">

كما ترون ، فإن إدخال الإدخال بالفعل أ class ينسب. حسنًا ، لا ينبغي أن تكون هذه مشكلة ، فقط استخدم

<%: Html.EditorFor(m => m.ConfirmationHeadline, new { @class="span-11 last"}) %>

ويجب أن تعمل ... خطأ ... كلا!

هذا سوف يخرج نفس الرمز بالضبط!

رغم ذلك ، يعمل بشكل جيد مع Html.TextAreaFor()

كيف يمكنني إزالة الفصل text-box single-line من أي وقت مضى تظهر حتى يمكن إلحاق فصولي الخاصة؟ أي قالب T4 الذي يجب تحريره؟

شكرا لكم على كل المساعدة.

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

المحلول

لا توجد طريقة لتخصيص قيمة سمة الفئة المنبعثة عند استخدام قوالب محرر مدمجة عبر EditorFor طريقة. إنه يرحم قيمة الفصل (مزيد من المعلومات المتاحة هنا: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html)

لديك خياران:

  1. اكتب قالبك المخصص الذي يدعم الوظيفة الإضافية. إلقاء نظرة هنا لمزيد من التفاصيل: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html

  2. معالجة إخراج EditorFor طريقة:

 <%: new HtmlString(Html.EditorFor(m=>m.ConfirmationHeadline).ToString()
        .Replace("class=\"text-box single-line\"", 
                 "class=\"text-box single-line span-11 last\"")) %>

نصائح أخرى

في MCV 5.1 ، يمكنك الاستفادة من htmlattributes. يعمل كالسحر...

@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control", placeholder = "Enter your Name" } })

يقوم ASP.NET MVC بإنشاء ملف يسمى site.css في مجلد المحتوى. هناك يمكنك أن ترى أن فئة صندوق النص قد تم تعيينها على عرض 30EM افتراضيًا. أعد ضبطه على شيء Saner مثل 15em. لا يبدو أن فئة الخط الواحد محدد في أي مكان.

يمكنك استخدام TextBoxFor في حين أن

واجهت نفس المشكلة ولم يعجبني أي من الحلول أعلاه. لقد وجدت أيضًا منشورًا مشابهًا هنا, ، لكنني لم أحب تلك الحلول أيضًا. بعد بعض الأدوات حولها ، وجدت شيئًا أعجبني ، والذي سمح لي بالاستمرار في استخدام قوالب المحرر (وهو شيء يجب أن تحاول الاستفادة منه كلما استطعت). لقد نشرت الحل هنا

جرب هذا الرمز

@Html.Raw(
    Html.EditorFor(m => m.DataInicial).ToString()
    .Replace(
        "\"text-box single-line\"",
        "\"form-control text-box single-line\""))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top