为什么在提交Blazor服务器表单时会出现404错误?
我在VisualStudio2019中使用.NETCore5.x创建了一个新的Blazor服务器项目 我创建了一个新页面为什么在提交Blazor服务器表单时会出现404错误?,blazor,blazor-server-side,asp.net-core-5.0,Blazor,Blazor Server Side,Asp.net Core 5.0,我在VisualStudio2019中使用.NETCore5.x创建了一个新的Blazor服务器项目 我创建了一个新页面Search.razor,并将其放在/Pages目录中 我创建了一个新页面SearchResults.razor,并将其放在/Pages目录中 我的搜索.razor如下所示: @page "/search" <h3>Search</h3> <form method="GET" action="S
Search.razor
,并将其放在/Pages
目录中
我创建了一个新页面SearchResults.razor
,并将其放在/Pages
目录中
我的搜索.razor如下所示:
@page "/search"
<h3>Search</h3>
<form method="GET" action="SearchResults.razor">
<input type="text" id="name" name="name" />
... future form elements here
<button type="submit"> Submit </button>
</form>
@code {
}
@page "/searchresults"
<h3>SearchResults</h3>
@code {
}
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<ul class="nav flex-column">
...
<li class="nav-item px-3">
<NavLink class="nav-link" href="search">
<span class="oi oi-list-rich" aria-hidden="true"></span> Search
</NavLink>
</li>
</ul>
</div>
地址栏包含以下内容:
https://localhost:44314/SearchResults.razor?name=joe+smith
“SearchResults.razor”
不是有效地址
快速概述其工作原理:
@page "/search"
<EditForm Model="this" OnValidSubmit="DoSearch">
<InputText @bind-Value="search" />
<button type="submit">Submit</button>
</EditForm>
@code {
private string search;
void DoSearch()
{
var arg = System.Web.HttpUtility.UrlEncode(search);
Navigator.NavigateTo($"searchresults/{arg}");
}
}
@page”/search
提交
@代码{
私有字符串搜索;
void DoSearch()
{
var arg=System.Web.HttpUtility.UrlEncode(搜索);
Navigator.NavigateTo($“searchresults/{arg}”);
}
}
接收端UrlDecode免费提供:
@page "/searchresults/{text?}"
<h3>SearchResults</h3>
<p>Looking for @Text</p>
@code {
[Parameter] public string Text { get; set; }
}
@page”/searchresults/{text?}
搜索结果
正在查找@Text
@代码{
[参数]公共字符串文本{get;set;}
}
@page "/searchresults/{text?}"
<h3>SearchResults</h3>
<p>Looking for @Text</p>
@code {
[Parameter] public string Text { get; set; }
}