Nano Hash - криптовалюты, майнинг, программирование

Asp.net core mvc, как установить обязательный атрибут с помощью бритвы

У меня есть форма в mvc, где различные настройки полей контролируются из базы данных.

Я написал функцию бритвы, которая проверяет, являются ли определенные поля обязательными.

В случае true мне нужно установить необходимый атрибут. В настоящее время я не могу вызвать функцию бритвы во входном теге.

Каковы мои варианты?

<input type="text" class="form-control" asp-for="@Model.Title" required="@myfunction()" maxlength="200" />

Ответы:


1

Вы можете создать вспомогательный тег для такого типа ситуации, как показано ниже.

    private const string ForAttributeName = "asp-for";

    [HtmlAttributeName("asp-is-required")]
    public bool IsMandatory { set; get; }

    public InputTextRequired(IHtmlGenerator generator) : base(generator)
    {
    }

    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        if (IsMandatory)
        {
            var attribute = new TagHelperAttribute("required");
            output.Attributes.Add(attribute);
        }
        base.Process(context, output);
    }
}

Вы можете использовать этот помощник тега в своем теге ввода, как показано ниже.

<input type="text" class="form-control" asp-for="@Model.Title" asp-is-required="true/false from razor" maxlength="200" />

Дополнительные сведения о теге Помощник используйте эту ссылку

14.07.2020

2

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

Затем вы можете установить необходимый тег. введите здесь описание изображения

14.07.2020
  • Я бы рекомендовал использовать Viewbag почему? Это не похоже на масштабируемое, ремонтопригодное решение. 14.07.2020
  • @CodeCaste, почему это не масштабируемое, ремонтопригодное решение. Viewbag используется для отправки данных из контроллера для просмотра, которые вам не нужно отправлять обратно после заполнения ваших данных. 14.07.2020
  • Да, и теперь у вас есть десять свойств на двадцати моделях, показанных на тридцати просмотрах, удачи в сохранении этого. У вас нет статической типизации с использованием ViewBag. Вам придется копировать множество идентификаторов, что чревато ошибками. Пользовательский атрибут проверки может показаться более полезным, когда вы пишете логику один раз, а MVC делает все остальное. ViewBag удобен для одноразовых вещей, таких как заголовок страницы или одноразовый раскрывающийся список, для которого вы не хотите создавать модель, но кроме этого он бесполезен. 14.07.2020
  • Да, вы можете создать пользовательскую аннотацию для своей модели, но тогда вам придется добавить в модель параметр, который не является данными, и в любом случае вам придется назначать этот параметр каждый раз, когда вы хотите его использовать, потому что вы не сможете выберите его из БД. Я вижу один плюс вашего решения, что вы можете легче управлять сообщением проверки. 14.07.2020
  • @TomasKuzminskas, вы не можете передать любое другое значение, кроме обязательного. требуемый = эквивалентно требуемому эквивалентно требуемому = требуемому 14.07.2020
  • @zed Я пробовал это решение, и оно работает с логическим значением. 14.07.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..