Как я могу создать функцию поиска из заголовка в C # MVC - PullRequest
0 голосов
/ 24 мая 2019

Если кто-то может мне помочь?

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

До сих пор у меня было меню - Поиск, и при нажатии я загружал ПоискИндекс Действие с окном поиска.Когда пользователь что-то ищет, я отображал результаты и фильтры для результатов с частичными представлениями, добавляя результаты в div id = "Results" и div id = "Filters", используя javascript.

Как я могу сделать это правильно ???

Заранее спасибо ...

Вот мой код контроллера поиска:

public ActionResult Index(string number)
    {
        return View(model: number);
    }

[SearchThrottle]
    [HttpPost]
    public ActionResult SearchByNumber(SearchArticleByNumberModel model, PagingInfo pagingInfo)
    {
        var results = repository.SearchArticleByNumber(model, pagingInfo);
        return PartialView("Articles", results);
    }

    [HttpPost]
    public ActionResult SearchByNumberFilters(SearchArticleByNumberModel model)
    {
        var results = repository.LoadArticleFilters(model);
        return PartialView("ArticleFilters", results);
    }

Вот мой индексный просмотр:

<div class="row">
    <div class="col-md-4">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h4 class="panel-title">
                    <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
                        Search
                    </a>
                </h4>
            </div>
            <div id="collapseOne" class="panel-collapse collapse in">
                <div class="panel-body">
                    <form id="searchbynumberform">
                        Value:
                        <div class="input-group input-group-sm">
                            <input type="text" class="form-control" name="number" id="number" value="@Model">
                            <input type="radio" name="articlekind" id="arl_kind0" value="0" checked>
                            <span class="input-group-btn">
                                <button class="btn btn-primary" type="button" name="numbersearch" id="numbersearch" disabled>
                                    Search
                                </button>
                            </span>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>

    <div class="col-md-8">
        <div id="alerts"></div>
        <form id="resultsForm">
            <div id="Filters"></div>
            <div id="Results"></div>
        </form>
    </div>
</div>

Это мой файл JavaScript:

    var searchByNumber = {

    init: function () {
        $(document).on('click', "#numbersearch", function () {
            searchShared.searchurl = "/Search/SearchByNumber";
            searchShared.filtersurl = "/Search/SearchByNumberFilters";
            searchShared.postdata = $("#searchbynumberform").serialize();

            searchShared.loadFilters();
            searchShared.loadArticles();
        });

        $(document).on('keydown', "#number", function (event) {
            var key = event.keyCode || event.charCode;

            if (key == 13) {
                $("#numbersearch").click();
                event.preventDefault();
            }
        });

        $(document).on('input', "#number", function () {

            var num = $("#number").val();
            $("#numbersearch").prop("disabled", num.length <= 3);
        });

        $(document).on("change", "#cbsimilarsearch", function () {
            var checked = $("#cbsimilarsearch").attr('checked') != undefined;
            $("#similarsearch").val(checked);
        });

        if (!!$("#number").val()) {
            $("#numbersearch").click();
        }
    }
};

loadArticles: function () {
        var url = "/Search/Articles";
        var postdata = searchShared.postdata;

        if ($("#resultsForm").length) {
            postdata += "&" + $("#resultsForm").serialize();
        }

        $.post(searchShared.searchurl,
            postdata,
            function (data) {
                $("#Results").html(data);
                $('.panel.available:last').after("<hr />");
            })
            .fail(function (result) {
                if (result && result.status && result.status === 429) {
                    message.error(result.responseText);
                } else {
                    $("#Results").html('');
                    message.error("Error... Try Again...");
                }
            });
    },

loadFilters: function () {
        var url = "/Search/ArticleFilters";
        var postdata = $("#searchbyvehicleform").serialize();

        $("#Filters").html('');

        $.post(searchShared.filtersurl,
            searchShared.postdata,
            function (data) {
                $("#Filters").html(data);
            });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...