вызовите asp - обработчик при использовании с другой страницы бритвы - PullRequest
0 голосов
/ 09 апреля 2020

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

Меню является компонентом. Просмотр на индексной странице

@model IEnumerable<Lib.Model.DepartmentMenu>
    <ul id="news-menu-item" class="row bg-Department" style="margin-left:0px !important; margin- right:0px !important; padding-right:0px; font-size:0.85rem">
 <li style="width:2.5rem">
     <a  asp-page="/Index"><i class="fas fa-home"></i></a>
 </li>
 @foreach (var item in Model)
 {
    <li><a asp-page="/SubFolder/Index" asp-route-SFId="@item.Id">@item.Name</a></li>
 }
 <li >
  <div class="d-flex justify-content-center h-90">
         <form method="post" enctype="multipart/form-data" asp-page-handler= "Search" 
class="searchbar">
            <input class="search_input" type="text" name="search_main" placeholder="search...">
            <button class="search_icon"><i class="fas fa-search"></i></button>
        </form>
    </div>
 </li>
</ul>

и кнопка поиска ручки в меню. add asp -page-handler = "Search" и на индексной странице, которую я поместил мой метод записи с обработчиком:

public async Task<IActionResult> OnPostSearchAsync(IFormCollection fc)
    {
        return RedirectToPage("/searchResult/", new { searchParam = searchText });
    }

, как вы видите, нажав на кнопку поиска, текст, который пишется во входных данных поиска, отправляется на страницу результатов поиска URL будет

www.thissite.com/earchresulth?searchparam= "test"

, когда посетитель на индексной странице ("root сайта") кнопка поиска работает нормально моя проблема в том, что:

пользователь переходит на другую страницу, например: www.thissite.com/ о нас и поиск снова => когда pu sh URL-адрес кнопки поиска изменится на

/ aboutUs? searchparam = "test"

и dot't redirect * От 1034 * до

www.thissite.com/earchresulth?searchparam= "тест"

Как это исправить? * Обработчик

в index.cs html которые обрабатывают seachComponent i s:

 public async Task<IActionResult> OnPostSearchAsync(IFormCollection fc)
    {
           return RedirectToPage("/searchResult/", new { searchParam = searchText });
               }

searchresult.cs html is

  public void OnGet(string searchParam)
    {
        //.ToList();

    }
...