الكتابة فوق الفصل على `html.editorfor`
-
28-09-2019 - |
سؤال
عن طريق الافتراضي مع
<%: 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)
لديك خياران:
اكتب قالبك المخصص الذي يدعم الوظيفة الإضافية. إلقاء نظرة هنا لمزيد من التفاصيل: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html
معالجة إخراج
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\""))