Как исправить проблему с пользовательским тегом в коде VS? - PullRequest
0 голосов
/ 30 декабря 2018

Я огляделся по стеку и много раз пытался решить мою проблему, но мои помощники по пользовательским тегам просто не рендерились.Все вопросы, которые я видел в стеке, были все с использованием visual studio, и я использую код VS, так что я не знаю, поможет ли это что-нибудь.

using System;
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Razor.TagHelpers;

namespace Learners_Project.CustomTagHelpers
{
    public class StepTagHelper : TagHelper
    {
      private const string EmailDomain = "contoso.com";

      public string MailTo { get; set; }
      public override void Process(TagHelperContext context, TagHelperOutput output)
      {
        output.TagName = "a";    // Replaces <email> with <a> tag

        var address = MailTo + "@" + EmailDomain;
        output.Attributes.SetAttribute("href", "mailto:" + address);
        output.Content.SetContent(address);
     }
  }
}

И это то, что мой взгляд выглядиткак

@using Learners_Project
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Learners_Project

@{
ViewData["Title"] = "Home Page";

 }

<step mail-to = "test"></step>
<p>why is this not working</p>

когда я запускаю это и смотрю в инспекторе, строка шага не обрабатывается

1 Ответ

0 голосов
/ 30 декабря 2018

Директива @addTagHelper делает ваши помощники пользовательских тегов доступными в представлении.Параметры этой директивы указывают (1) какие помощники тегов импортировать и (2) из ​​какой сборки загружать эти помощники тегов.В этом случае я предполагаю, что пробел в имени вашей сборки / проекта вызвал некоторое недопонимание.Даже если пространство имен вашего проекта может быть Learners_Project, имя сборки по-прежнему будет Learners Project (без подчеркивания).Поскольку нет сборки с именем Learners_Project (с подчеркиванием), помощники по тегам не найдены.

Изменение оператора импорта с @addTagHelper *, Learners_Project на @addTagHelper *, Learners Project, скорее всего, решит проблему.Однако, если это не решит проблему, кавычки вокруг параметров могут (@addTagHelper "*, Learners Project").В моем тестовом проекте это не было необходимо.

...