Как я могу вернуть разметку бритвы от помощника?

Недавно я написал библиотеку javascript, чтобы уменьшить количество копий, которые я делал. Я чувствую, что каждый раз, когда я копирую код вставки, есть возможность сделать его универсальным, чтобы я мог использовать его повторно.

После создания библиотеки я захотел использовать ее в виде.cshtml. Итак, я использовал ссылку на скрипт и вуаля, она была доступна. Тем не менее, IntelliSense Visual Studio 2010 на самом деле не помогал вообще. Фактически, все, что это показывало, было регулярными вариантами JavaScript.

Я решил заставить IntelliSense работать с моей библиотекой. После поиска высоких и низких я понял (спасибо SLaks). Связанный ответ на вопрос js IntelliSense заключался в том, чтобы окружить ссылку на скрипт бритвой. @if(false){<script>} чтобы IntelliSense работал со связанным скриптом в этом представлении.

Итак, я подумал,

Должны ли все ссылки на скрипты в Visual Studio 2010 для бритвы быть окружены этой разметкой?

@if (false)
{
 <script src="/Scripts/r.js" type="text/javascript"></script>
}else{
 <script src="@Url.Content("~/Scripts/r.js")" type="text/javascript"></script>
}

Это выглядит хорошо для меня, поэтому я начал включать его, только чтобы обнаружить, что я снова копирую. Я подумал, что мог бы сделать "простого" помощника для использования, может быть, @Html.Script(source), К сожалению, я не был уверен, как вернуть разметку бритвы от помощника.

Я попробовал это:

    public static void Script(
this HtmlHelper html, string source)
    {
        html.ViewContext.Writer.Write("@if(false){}else{}");
    }

Но он просто выводит строку на экран:(

Как я могу вернуть разметку бритвы от помощника? ИЛИ, есть ли другой процесс, который я могу использовать, чтобы сделать это повторно используемым?

1 ответ

Вы не можете сделать разметку Razor, созданную в помощнике. Механизм бритвы сначала анализирует код бритвы, затем выполняет вспомогательные функции. Результаты Helper могут быть использованы только для создания HTML-разметки.

Другие вопросы по тегам