Скрыть кнопку на основе результата в частичном представлении MVC - PullRequest
0 голосов
/ 04 июля 2019

У меня есть страница parent.cshtml, где она отображает частичное представление _child.cshtml. Этот _child.cshtml содержит таблицу данных и отображает данные в сетке. Всякий раз, когда эта таблица данных не содержит, мне нужно скрыть кнопку, которая находится в parent.cshtml. Пожалуйста, помогите мне, как мне этого добиться.

Я пробовал ниже до сих пор в родительском представлении

jQuery.ajax(type: "POST",
        url: "{ChilePartialView}",
        data: { data },
        success: function (response) 
        {
            if (!response.Product.Count > 0) {
                jQuery("formSaveButton").hide();
            }
        });

Также я попробовал следующее:

jQuery(document).ready(function () {
    $.get('/ControllerName/ActionMethodName', function (data) {
        if (!data.Products.Count > 0) {
            $("formSaveButton").hide();
        }
    });

Но никто из них не работал

1 Ответ

1 голос
/ 04 июля 2019

Вы должны понимать, что действия вашего контроллера в основном возвращают только HTML-разметку (если только вы явно не возвращаете другой ActionResult, например, JSON). Вы не можете работать с этой разметкой так, как

if (!data.Products.Count > 0)

Любой JS-скрипт, который вы вставляете в дочернее представление, будет просто отображаться как часть вашей html-страницы и может скрывать любой элемент со страницы - не имеет значения, находится ли скрытый элемент в родительском или дочернем представлении на стороне сервера. Поэтому вы можете просто вставить в свой дочерний вид встроенный скрипт, который будет скрывать выбранный элемент в $ (document) .ready listener.

Немного более точное решение использует разделы (см., Например, эту статью ) и позволяет выводить все встроенные сценарии в одном месте (обычно перед закрытием тега body).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...