Asp.Net Core 上的 Razor 页面 - 添加了 Razor 页面但无法显示页面

Razor Pages on Asp.Net Core - Added Razor Page but cant get page to show

我仍然在 Razor Pages for .Net Core 上想了很多,但有点卡住了。我添加了一个新的 Razor 页面:

位于 Pages 文件夹中:

在现有页面上,我添加了输入和启动搜索的按钮:

哪个 onClick 调用以下 Javascript 函数:

在下面的屏幕截图中,当我放置断点时命中 OnGetAsync 方法,并且可以看到填充了输入值 SearchValue:

但是我希望浏览器随后显示 Search.cshtml 页面。相反,浏览器只停留在当前 index.cshtml 页面上。

我是不是遗漏了什么,或者只是做错了?

在您的页面控制器中,您应该有一个操作,其中 returns 视图:

public IActionResult Search()
{
    return View();
}

However I would expect the browser to then display the Search.cshtml page. Instead the browser just remains on the current index.cshtml page.

那是因为$.get只有在success函数中做了什么才会回调结果

您需要更改 jquery 如下所示:

@page
@model IndexModel

<input id="inpSearchMembers" placeholder="Search for a Member..." />
<input id="btnSearchMembers" type="button" value="Search"  onclick="SearchMembers()" />
@section Scripts
{
    <script>
        function SearchMembers() {
            var searchValue = $("#inpSearchMembers").val();
            debugger;
            $.get("/Search", { searchValue: searchValue }, function (data) {
                window.location.href = "/Search";   //add this...
            });
        }
    </script>
}

顺便说一句,你创建了一个disabled按钮,点击它是不可能触发onclick事件的。

实际上,我认为您可以在不使用 jquery 的情况下使用表单提交,像下面这样更改您的 Index.cshtml:

@page
@model IndexModel
<form asp-page="Search" method="get">
    <input name="searchValue" placeholder="Search for a Member..." />
    <input type="submit" value="Search" />
</form>