Blazor - 提交表单而不重新加载(没有 JS)

Posted

技术标签:

【中文标题】Blazor - 提交表单而不重新加载(没有 JS)【英文标题】:Blazor - submit form without reloading (without JS) 【发布时间】:2021-12-12 13:10:47 【问题描述】:

我已经阅读了很多关于如何在不重新加载页面的情况下提交表单的问题。每个问题的答案都是使用 Ajax。在 ASP.Net 应用程序中,我必须使用 javascript,没关系。但在 Blazor 中,我不想使用任何 Java 脚本。

是否可以使用表单提交,而无需在 Blazor 中重新加载页面?

@using Microsoft.AspNetCore.WebUtilities
@inject NavigationManager navigationManager

    <form>
        <input @bind="ErrorCode"/>
    </form>
    @code
    
        System.Uri uri;

        protected override void OnInitialized()
        
            uri = navigationManager.ToAbsoluteUri(navigationManager.Uri);
            if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("ErrorCode", out var errorCodeValue))
            
                ErrorCode = errorCodeValue;
            
        
    

【问题讨论】:

你应该阅读 EditForm 一个内置的 Blazor 组件。 这是 Blazor 的目的,让客户端不断与服务器通信。 如何像使用 html
一样在 Blazor 中使用 EditForm?
按照 Brian Parker 的建议做:阅读 EditForm 一个内置的 Blazor 组件。转到文档,阅读并测试代码示例。 好的,我会试试的,谢谢大家。 【参考方案1】:

您将需要一个编辑表单,但您不必求助于 JavaScript 来解决这个问题。 向您的 Blazor 应用程序添加一个类,并使用 HttpClient 类或 ClientWebSocket 类创建一个通信方法。 它们中的任何一个都可以与 API 或 MVC 端点通信,就像任何其他 .Net 应用程序与服务通信一样。

【讨论】:

以上是关于Blazor - 提交表单而不重新加载(没有 JS)的主要内容,如果未能解决你的问题,请参考以下文章

我想提交表单而不重新加载页面并且没有 OK 消息 [关闭]

jQuery提交表单而不重新加载页面

在浏览器中重新加载/刷新页面而不重新提交表单?

提交表单而不重新加载页面

提交表单而不重新加载页面[重复]

如何在 Laravel 中提交 PUT 方法表单而不重新加载页面?