C# Razor 重定向到.Net Core 5 中带有自定义路由的页面
C# Razor redirect to page with custom route in .NetCore 5
我想要一个 creating/updating 带有参数化路线的记录的页面。
@page "/Clients/Detail/{ClientId?}"
...
<form method="post">
...
</form>
如果ClientId
为空,则为新记录使用空表格;
如果ClientId
是一个数字,则加载记录并填写表格进行更新;
方法背后的代码是:
public async Task<ActionResult> OnPostAsync([FromServices] ClientsService _service)
{
if (ClientId == null)
{
CurrentClient.ClientId = Guid.NewGuid().ToString("n");
while ( await _service.GUIDAlreadyExistsAsync(CurrentClient.ClientId))
{
CurrentClient.ClientId = Guid.NewGuid().ToString("n");
}
await _service.CreateAsync(CurrentClient);
//todo redirect
return RedirectToRoute("/Clients/Detail/"+ CurrentClient.ClientId);
}
else
{
await _service.Update(CurrentClient);
return RedirectToPage("/Clients/Index");
}
}
记录已正确创建,但是当我返回 /Client/Detail/12345678...AAAA 页面不存在时。
如何指定现在使用我生成的 ID 打开同一页面?
尝试改变
return RedirectToRoute("/Clients/Detail/"+ CurrentClient.ClientId);
至
return Redirect("/Clients/Detail/" + CurrentClient.ClientId);
我想要一个 creating/updating 带有参数化路线的记录的页面。
@page "/Clients/Detail/{ClientId?}"
...
<form method="post">
...
</form>
如果ClientId
为空,则为新记录使用空表格;
如果ClientId
是一个数字,则加载记录并填写表格进行更新;
方法背后的代码是:
public async Task<ActionResult> OnPostAsync([FromServices] ClientsService _service)
{
if (ClientId == null)
{
CurrentClient.ClientId = Guid.NewGuid().ToString("n");
while ( await _service.GUIDAlreadyExistsAsync(CurrentClient.ClientId))
{
CurrentClient.ClientId = Guid.NewGuid().ToString("n");
}
await _service.CreateAsync(CurrentClient);
//todo redirect
return RedirectToRoute("/Clients/Detail/"+ CurrentClient.ClientId);
}
else
{
await _service.Update(CurrentClient);
return RedirectToPage("/Clients/Index");
}
}
记录已正确创建,但是当我返回 /Client/Detail/12345678...AAAA 页面不存在时。
如何指定现在使用我生成的 ID 打开同一页面?
尝试改变
return RedirectToRoute("/Clients/Detail/"+ CurrentClient.ClientId);
至
return Redirect("/Clients/Detail/" + CurrentClient.ClientId);