Ich freue mich auf die Erweiterung "Html.TextBoxFor", um einige spezifische Client-Anforderungen zu erfüllen.MVC5 HTMLHelper-Erweiterung liefert nicht erwarteten Inhalt
Als Plausibilitätsprüfung, begann ich einfach, und gerade eine Test-Erweiterungsmethode, die einfach auf die vorhandene Funktionalität delegieren würde:
public static class HtmlExtensions
{
public static MvcHtmlString Test<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
return htmlHelper.TextBoxFor(expression);
}
}
Alles schien, bis ich diese gegen ein Modell mit markiert versucht zu arbeiten Anmerkungen, das heißt:
public class TestRoot
{
[Display(Name = "Max Length 10")]
[Required]
[StringLength(10)]
public string MaxLength10 { get; set; }
}
Wenn ich rufe die eingebaute in TextBoxFor Funktion, erhalte ich alle erwarteten mark-up, das heißt:
@ Html.TextBoxFor (e => e.MaxLength10)
<input data-val="true" data-val-length="The field Max Length 10 must be a string with a maximum length of 10." data-val-length-max="10" data-val-required="The Max Length 10 field is required." id="MaxLength10" name="MaxLength10" type="text" value="">
Als ich meine Erweiterung genannt, erwartete ich den gleichen Inhalt, sondern bekomme ich dies:
@ Html.Test (e => e.MaxLength10)
<input id="MaxLength10" name="MaxLength10" type="text" value="">
Was all die netten Datenaufbelichtung Tags passiert?