Я хочу продлить Buildin InputTagHelpers из ASP.NET Core, простого примераNullReferenceException при расширении класса ASP.NET ядра InputTagHelper без Для выражения
[HtmlTargetElement("input")]
class TestTagHelper:InputTagHelper{
public override void Process(TagHelperContext context, TagHelperOutput output) {
base.Process(context,output);
}
}
Этих должен вызвать помощник входного тега по умолчанию. Его работа прекрасна, когда атрибут From
, например <input asp-for="SomeModelAttribute" />
, но не тогда, когда у меня есть элементы, которые не связаны ни с каким атрибутом модели, как кнопка отправки <input type="submit" />
. В этом случае я получил исключение NullReferenceException.
Согласно source code of the helper class, кажется, что следующие строки вызывает вопрос:
var metadata = For.Metadata;
var modelExplorer = For.ModelExplorer;
Но странное дело, когда я использую Buildin taghelper без наследования от моего класса (непосредственно InputTagHelper
), он работает, независимо от того, присутствует ли атрибут For
. Мне нужно решение для этого, потому что, когда я вызываю метод Process базового класса только тогда, когда For не является нулевым, он разбивает мои входные элементы: <input type="submit" />
отображается как <input />
, который не имеет смысла в этом месте.