Razor页面重定向到Razor组件

3

我的项目中有以下设置:

/Pages/Page1.razor
/Pages/Page2.cshtml

第一页是一个Blazor组件。

第二页是Razor页面。

在第一页顶部:

@page "/Page1"

在Page2.cshtml.cs的代码后台中,我有以下内容:
public IActionResult OnPostAddNew()
{
    return RedirectToPage("Page1");
}

我已经尝试过我所能想到的所有方法,但我总是会得到以下信息:
InvalidOperationException: 没有与提供的值匹配的页面“Page1”。
我知道,实际上Page1并不是一个页面,但我一直没有找到如何重定向的方法。NavLink可以很好地找到Page1。

你的项目是 Blazor 还是 Razor Pages 应用程序?你不能像平常那样将 Blazor 组件页面与 Razor 页面混合在一起使用...你不能通过重定向从 Razor 页面导航到 Blazor 页面。你想干什么? - enet
基本上就是这样。它是一个 Blazor 服务器应用程序。我添加了一个 Razor 页面来显示一个网格组件。我希望从那个页面导航到一个 .razor 页面来显示详情。 - Ed Barnes
澄清:第三方网格控件而非网格组件。 - Ed Barnes
我认为你做不到。但是,你可以创建一个Razor页面应用程序,在其中你可以有一个页面,可以嵌入一个Razor组件来显示由Razor页面提供的数据... - enet
问题出在这里,绑定丢失了。我将一个对象传递给组件,但 NotifyProperty 更改事件停止触发。控件布局(位置和大小)甚至看起来不同(组件与嵌入 Razor 页面的组件)。希望他们能找到两种页面类型相互通信的方法。 - Ed Barnes
1个回答

4

我也曾经遇到过从注销页面重定向的问题。只需要使用Redirect而不是RedirectToPage就可以解决我的问题。RedirectToPage会给我带来与你一样的错误。在我的例子中,“Counter”页面是Visual Studio创建Blazor项目时获取的示例代码中的Counter.razor页面。

public async Task<IActionResult> OnGet()
{
    await _signInManager.SignOutAsync();
    return Redirect("~/Counter");
}

LocalRedirect 似乎也可以使用:

return LocalRedirect(Url.Content("~/Counter"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接