在 Razor 页面中重定向到带有 ID 的页面

Posted

技术标签:

【中文标题】在 Razor 页面中重定向到带有 ID 的页面【英文标题】:Redirect to Page with ID in Razor Pages 【发布时间】:2019-06-25 09:30:38 【问题描述】:

我试图让我的应用程序在更新数据库后重定向到上一页,但我似乎无法弄清楚。更复杂的是,前一页不仅仅是一个简单的页面。它填充了提取的信息,但在数据库中有一个特定的行,因此 URL 具有

blah blah blah.../ProjectDetails?id=(身份证号)

我尝试过使用重定向方法,但它们并不像我希望的那样简单。谁能帮我弄清楚如何返回上一页?

查看

        <form method="post">
            <select class="custom-select mb-4 col-6" name="Assignee">
                <option>John</option>
                <option>Jane</option>
                <option>Jim</option>
                <option>Juju</option>
            </select>
            <br>
            <button type="submit" class="btn btn-info">Save</button>
            <a class="btn btn-danger" asp-page="./Teamlead">Cancel</a>
        </form>

代码背后

public async Task<IActionResult> OnPostAsync(int id)
        
            Submission = _SubmissionContext.Submissions
                            .Where(s => s.ID == id).First();
            Submission.AssignedTo = Assignee;
            await _SubmissionContext.SaveChangesAsync();

            return RedirectToRoute("./ProjectDetails"); //PROBLEM HERE

        

【问题讨论】:

【参考方案1】:

您需要将 id 传递给重定向页面。您可以使用匿名类型来执行此操作:

public async Task<IActionResult> OnPostAsync(int id)
    
        Submission = _SubmissionContext.Submissions
                        .Where(s => s.ID == id).First();
        Submission.AssignedTo = Assignee;
        await _SubmissionContext.SaveChangesAsync();

        return RedirectToRoute("./ProjectDetails", new  id = Submission.ID );
    

【讨论】:

【参考方案2】:

您应该尝试使用您的路由属性在顶部装饰您的剃刀页面视图,如下所示:

@page "id"

下面的链接应该有助于更多关于路由参数的示例:

https://www.mikesdotnetting.com/article/310/routing-in-razor-pages

【讨论】:

我真的很喜欢这个链接上的信息。谢谢你的分享。但是您的回答并没有告诉我如何将代码重新路由到上一页。或者我只是没有完全理解。 您可以尝试 Brad 的回答,但在加载该页面时您还需要调整 Get 方法,以便在重新路由到您的页面时它可以接受 id 参数。尝试类似: public async Task OnGetAsync(int id) 您可以将 @page id 添加到 cshtml 视图中,这样当您返回该页面时,您可以在您的 url 中保留该值当您使用默认的 OnPostAsync() 发布方法时,再次重新保存提交。

以上是关于在 Razor 页面中重定向到带有 ID 的页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 中重定向到 404?

如何在PHP中重定向到同一页面

在 JSP 中重定向页面?

如何在控制器操作中重定向到 aspx 页面

如何使用Razor语法重定向到Jquery中的另一个页面

.Net Core 5 Razor pages Cookie Authentication 登录成功后重定向到登录页面